为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕少森 2021-07-06 13:18:04
我是新来的。使用 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');   }应该是被选中的电影必须包括在类别中..但是在布尔值上调用成员函数类别()
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

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

Usinginsert()将简单地返回trueorfalse取决于查询是否成功。

Usingcreate()将返回一个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'];


查看完整回答
反对 回复 2021-07-09
?
PIPIONE

TA贡献1829条经验 获得超9个赞

是的,我解决了这个问题

protected  $fillable = ['movie_name'];

那是我的代码。

现在

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


查看完整回答
反对 回复 2021-07-09
  • 2 回答
  • 0 关注
  • 220 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信