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

我是新来的。使用 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');   

}

应该是被选中的电影必须包括在类别中..但是


在布尔值上调用成员函数类别()


慕少森
浏览 221回答 2
2回答

摇曳的蔷薇

如评论中所述,您应该使用create()而不是insert().Usinginsert()将简单地返回trueorfalse取决于查询是否成功。Usingcreate()将返回一个Movie模型实例,该实例将包含该categories()方法:$entry&nbsp;=&nbsp;Movie::create($data);&nbsp;//<--This&nbsp;is&nbsp;where&nbsp;insert()&nbsp;is&nbsp;replaced&nbsp;with&nbsp;create() $entry->categories()->attach($categories);您需要确保movi_name和在您的模型release_date中的&nbsp;$fillable数组中Movie:protected&nbsp;$fillable&nbsp;=&nbsp;['movi_name',&nbsp;'release_date'];

PIPIONE

是的,我解决了这个问题protected &nbsp;$fillable = ['movie_name'];那是我的代码。现在protected &nbsp;$fillable = ['movie_name','release_date'];
打开App,查看更多内容
随时随地看视频慕课网APP