양식을 처리하고 양식의 데이터를 저장하려면 db를 사용하십시오. 저장하기 전에 양식과 일부 데이터를 가져 오려고합니다 (현재 user_id, 현재 datetime과 같습니다).왜 데이터가 저장되지 않습니까?
public function actionCreate()
{
$model = new Post();
if ($model->load(\Yii::$app->request->post()) && $model->validate()) {
$model->user_id = \Yii::$app->user->getId();
$model->created_at = \Yii::$app->formatter->asDate(new \DateTime(),'php:Y-m-d');
$model->image = UploadedFile::getInstance($model, 'image');
if($model->upload()) {
$model->image = ('web/images/' . $model->image->baseName . '.' . $model->image->extension);
} else {
$model->image = 0;
}
$model->save();
return $this->redirect(['site/blog']);
} else {
return $this->render('blog/create', ['model' => $model]);
}
}
을 내 포스트 모델 : 나는 컨트롤러의 방법을 만든
class Post extends ActiveRecord
{
public $title;
public $text;
public $image;
public $comments;
public function rules()
{
return [
[['title', 'text'], 'required'],
[['image'], 'file', 'extensions' => 'png, jpg'],
];
}
public function upload()
{
if ($this->image->saveAs(\Yii::getAlias('@app') .'\web\images\\' . $this->image->baseName . '.' . $this->image->extension))
return true;
else {
return false;
}
}
public function getUser()
{
return $this->hasOne(User::className(),['id' => 'user_id']);
}
}
하지만 난 단지 USER_ID 내 양식을 보낼 때 지금, created_at은 내 DB에 저장. 내가 뭘 잘못 했니?
이것은'$ model-> image = 0' 때문에 발생할 수 있으며, 이것은 업로드에서'false' 응답의 원인 일 수 있습니다. –
'$ model-> save();'가 실패하면 뷰를 ('blog/create', [ 'model'=> $ model]))') – gmc
오류보고를 활성화하고 /하거나 로그 파일을 점검하여 문제를 추적하십시오. 파일의 업로드를 실패로 만드는 경로의 이중 슬래시일까요? '\ web \ images \\''? 대신 슬래시를 사용하는 것도 좋습니다. 'web \ images' 폴더가 웹 서버에 의해 쓰기 가능하도록해야합니다. – Cyclonecode