Php 使用Laravel为一对多类别结构创建数据记录

Php 使用Laravel为一对多类别结构创建数据记录,php,laravel,Php,Laravel,我是新来的。使用Laravel,我希望使用多个选择功能保存数据。但是,我创建的模型文件中的方法没有出现。我是新手,如何修复它?我无法运行多重选择功能 控制器中的方法 public function saveForm() { $movi_name = $req->input('movi_name'); $release_date = $req->input('release_date'); $data = array( 'movi_name'

我是新来的。使用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');   
}
应该注意的是,选定的电影必须包含在类别中。。但是

对布尔函数调用成员函数categories()


抱歉,如评论中所述,您应该使用
create()
而不是
insert()

使用
insert()
只需返回
true
false
,具体取决于查询是否成功

使用
create()

$entry = Movie::create($data); //<--This is where insert() is replaced with create()

$entry->categories()->attach($categories);

是的,我解决了这个问题

protected$filleble=['movie_name']

那是我的密码

既然


protected$filleble=['movie\u name','release\u date']

我想您想要的是电影::创建()而不是电影::插入()。这并不是说类中不存在该方法,而是说$entry是一个布尔值,不是电影的一个实例。是的,我明白了,我如何修复这个请求?你是否尝试过用建议的create替换insert?我不知道如何尝试。我试过你说的。。这次“一般错误:1364字段‘发布日期’没有默认值”。。。用这个error@Atakan请编辑您的问题和
电影
模型的所有代码。
protected $fillable = ['movi_name', 'release_date'];