forms - Laravel:创建具有关系的记录时,无法将外键插入表中

标签 forms laravel dropdown

我正在关注 Laravel 5.2 文档中的“中间任务列表”练习,并且在理解如何 this piece of code 方面遇到一些困难。作品。

$request->user()->tasks()->create([
    'name' => $request->name,
]);

问题 1

具体来说,我对 user()tasks() 方法之间的关系感到困惑。为什么以及如何才能从 $request 对象中获取 user()tasks() 方法?

问题 2

我创建了一个类似的应用程序,并具有 PersonCountry 模型。我想从下拉列表中传递 country_id 输入,但无法使用以下代码更新数据库。

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required|max:255',
        'country_id' => 'required|max:3',
    ]);

    $request->user()->people()->create([
        'name' => $request->name,
        'country_id' => $request->country_id,
    ]);

    return redirect('/people');
}

为什么country_id无法保存到表中?我尝试将 user() 更改为 country() 但错误消息显示“class Country”未找到。但是为什么教程中的“user()”可用呢?我很困惑。

最佳答案

如果发出请求的用户经过身份验证,则请求的 user() 方法可用。

由于它使用User模型,因此它还可以获取相关模型。为了使 tasks() 工作,Task 关系必须在用户模型中定义。

对于要创建的country_id(批量分配),请确保将其包含在People模型的$fillable属性中

$fillable = ['country_id']

请阅读 Laravel 文档中的 Eloquent 模型关系部分。

关于forms - Laravel:创建具有关系的记录时,无法将外键插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938906/

相关文章:

php - Laravel 4 session 在生命周期限制后不会过期

c# - 如何让下拉菜单默认为空白

javascript - 在 React 中单击链接时关闭下拉菜单的最佳实践是什么?

javascript - 需要JavaScript的时候服务端验证失败不显示错误可以吗?

php - 如何在mysql插入语句上放置PHP 'not null'条件?

javascript - 通过Javascript在另一个html页面中显示HTML表单

php - 如何使用多个关键字从数据库中获取和排序最相关的条目 Laravel 5

mysql - 需要找到mysql行之间的共同元素

php - 如何在laravel中以特定id的模式显示数据?

java - 如何单击 Selenium 中的组合框搜索下拉菜单?