【发布时间】:2018-12-10 13:15:14
【问题描述】:
我需要一种仅在创建 Article 模型时设置 ArticleCategory 的方法,并且不会通过使用 $fillable 数组的更新过程进行更改。我需要牢记以下几点:
1- 我想通过批量分配来做到这一点 2- 我使用表单请求验证进行验证
那么是否有 $fillable 数组用于创建和一个用于更新?
谢谢...
【问题讨论】:
标签: php laravel laravel-5.6 php-7.2
我需要一种仅在创建 Article 模型时设置 ArticleCategory 的方法,并且不会通过使用 $fillable 数组的更新过程进行更改。我需要牢记以下几点:
1- 我想通过批量分配来做到这一点 2- 我使用表单请求验证进行验证
那么是否有 $fillable 数组用于创建和一个用于更新?
谢谢...
【问题讨论】:
标签: php laravel laravel-5.6 php-7.2
fillable属性只有一个,所以你想要的默认是不可能的。
但您可以使用 only 并检索您想要更新的输入:
来自文档:
如果您需要检索输入数据的子集,您可以使用 only 和 except 方法。这两种方法都接受一个数组 或动态参数列表:
$input = $request->only('username', 'password');
$input = $request->except(['credit_card']);
在你的情况下,它会是这样的:
public function update(UpdateArticleRequest $request, $id)
{
$article = Article::findOrFail($id);
$article->update($request->only('title', 'name'));
}
【讨论】:
您不能真正做到这一点,但您可以考虑以下替代方案:
不要将ArticleCategory 放入您的$fillable 数组中。
使用以下内容:
$article = new Article($request->all());
$article->ArticleCategory = $request->input('ArticleCategory');
$article->save();
通过这种方式,您可以在需要时明确设置文章类别,并防止它被大量分配。
我认为这将是解决这个问题的明智方法,因为(从它的声音来看)ArticleCategory 通常应该受到保护。
【讨论】: