我尝试使用Laravel的create
方法存储数组
$input = Input::all();
$new_media = $this->media->create($input);
或
$input = Input::all();
$new_media = Media::create($input);
这两个代码都不起作用。
这是我遇到的错误。
Method [create] does not exist.
Laravel文档http://laravel.com/docs/4.2/eloquent
来自laravel docs
// Create a new user in the database...
$user = User::create(array('name' => 'John'));
媒体模型
<?php
class Media extends Eloquent {
protected $table = 'media';
protected $guarded = array();
public static $rules_video = array(
'title' => 'required',
'url' => 'required'
);
public static $rules_image = array(
'title' => 'required'
);
public function category(){
return Category::find($this->category_id);
}
}
答案 0 :(得分:4)
使用create
,fill
或update
时,您需要设置Mass Assignments。请参阅this answer。
删除您的guarded
媒体资源,并创建一个名为fillable
的新媒体作为数组,其中包含要使用质量分配更新的允许字段。
protected $fillable = ['title', 'url'];