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

时间:2019-05-24 17:48:23

标签: php 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');   
}

应该是所选电影必须包含在类别中。.但是

  

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

对不起,英语不好

2 个答案:

答案 0 :(得分:1)

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

根据查询是否成功,使用insert()会简单地返回truefalse

使用create()将返回Movie模型的实例,该实例上将具有categories()方法:

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

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

您需要确保movi_name模型中的release_date$fillableMovie数组中:

protected $fillable = ['movi_name', 'release_date'];

答案 1 :(得分:0)

是的,我解决了问题

protected $fillable = ['movie_name'];

那是我的代码。

现在

protected $fillable = ['movie_name','release_date'];