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');
}
应该是选择的电影必须包含在类别中..但是
在布尔值上调用成员函数 categories()
对不起英语不好
解决方案
如评论中所述,您应该使用create()
而不是insert()
.
Usinginsert()
将简单地返回true
或false
取决于查询是否成功。
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'];
推荐阅读
- angular - Angular:如何使用自定义组件来保持表单干燥?
- javascript - 为什么 .innerHTML 编辑 src 属性?
- python-3.x - 选择要在脚本中运行的函数
- angular - 如何在路由模块中获取路由参数?
- android - Android Gradle 同步失败:无法获取对象的未知属性“support_version”
- vba - 查找和编辑以特定颜色突出显示的文本,但同时保留空格和换行符(以保持文档布局)
- c# - 未捕获的 Sys.ArgumentOutOfRangeException:Sys.ArgumentOutOfRangeException:值必须是整数。关于 AjaxToolkit 日历扩展器
- c - C程序用另一个给定的单词替换文本中的单词
- python - 如何有条件地填写“nan”值?
- javascript - 如何将提交按钮链接到 HTML 中的电子邮件?