我是新来的。使用Laravel,我想使用多种选择功能保存数据。但是,我创建的模型文件中的方法没有出现。我是幼虫的新手,如何解决?我无法运行多选功能。
控制器中的方法
public function saveForm()
{
$movi_name = $req->input('movi_name');
$release_date = $req->input('release_date');
$data = array(
'movi_name' => $movi_name,
'release_date' => $release_date
);
$categories = request(categories);
$entry = Movie::insert($data) /*Model File and Save Data*/
$entry->categories()->attach($categories);
}
模型文件中的方法
protected $table = 'film';
public function categories()
{
return $this->belongsToMany('App\Models\Kategori', 'category_movie');
}
应该是所选电影必须包含在类别中。.但是
在布尔值上调用成员函数category()
对不起,英语不好
答案 0 :(得分:1)
如评论中所述,您应该使用create()
而不是insert()
。
根据查询是否成功,使用insert()
会简单地返回true
或false
。
使用create()
将返回Movie
模型的实例,该实例上将具有categories()
方法:
$entry = Movie::create($data); //<--This is where insert() is replaced with create()
$entry->categories()->attach($categories);
您需要确保movi_name
模型中的release_date
和$fillable
在Movie
数组中:
protected $fillable = ['movi_name', 'release_date'];
答案 1 :(得分:0)
是的,我解决了问题
protected $fillable = ['movie_name'];
那是我的代码。
现在
protected $fillable = ['movie_name','release_date'];