当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.2:如何保存多个表单字段?

殳俊晤
2023-03-14

我有一个表格:

<label for="task-name" class="col-sm-3 control-label">Task</label>
    <div class="col-sm-6">
        <input type="text" name="name" id="task-name" class="form-control">
   </div>
</div>

<input name="project_id" id="task-project_id" type="hidden" value="{{ $project->id }}">

以及存储两个表单字段的方法:

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

    Task::create([
        'project_id' => $request->project_id,
        'name' => $request->name,
    ]);

    return redirect()->back();;
}

但是,只有“name”保存到db表中。任务表有两个列名

这是桌子:

mysql> explain tasks;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| id         | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| project_id | int(11)          | NO   | MUL | NULL    |                |
| name       | varchar(255)     | NO   |     | NULL    |                |
| created_at | timestamp        | YES  |     | NULL    |                |
| updated_at | timestamp        | YES  |     | NULL    |                |
+------------+------------------+------+-----+---------+----------------+

还选中了“手动创建”选项:

App\Task::create(['project_id' => 20,'name' =>'testtt']); 

输出:

App\Task {
        name: "testtt",
        updated_at: "2016-07-29 01:08:09", 
        created_at: "2016-07-29 01:08:09", 
        id: 25
}

谢谢

共有3个答案

吴兴国
2023-03-14

确保你:

  • $project-

告诉我如果你在这三点上遇到任何麻烦,我会尽力帮助你,但是我真的认为通过在代码中检查这三点,你会发现错误!尝试函数var_dump($var)和浏览器检查员来检查所有变量是否设置正确。

祝你好运

葛勇锐
2023-03-14

啊,啊

    class Task extends Model
    {
      protected $fillable = ['name', 'project_id'];

      public function tasks()
      {
        return $this->belongsTo(Project::Class);
      }
    }

需要将项目id添加到任务模型中的$fillable中。

易炳
2023-03-14

我在返回的任务对象中根本看不到project_id属性:

App\Task {
    name: "testtt",
    updated_at: "2016-07-29 01:08:09", 
    created_at: "2016-07-29 01:08:09", 
    id: 25
}

这意味着不允许在$fillable数组中的任务模型中使用project_id属性,因此请确保您的$fillable看起来像:

protected $fillable = ['name', 'project_id'];

希望这有帮助。

 类似资料:
  • 问题内容: 我正在阅读有关“ onChange”的文档, 并且对我的论坛有多个字段(例如选择框,复选框,文本区域和输入)会怎么办感到好奇?我是否要做类似的事情: 到初始状态,然后使用相同的概念来处理该字段的更改? 问题答案: 编辑:回想起来,这个答案很糟糕,请改用 Junle Li 的答案。 是的,您可以完全做到这一点。但是,当您获得许多表单组件时,编写所有处理程序和getInitialState

  • 我已经创建了一个布尔列表: } 任何建议都会很好,非常感谢!如果我可以从开关上的值字段中重建数据,但我没有看到任何答案...

  • 我正在学习cakephp,已经做了很多。我问这个问题的唯一原因是cakePHP中的文档可能是错误的。我不能从文档或过去的stackoverflow帖子中看到为什么(子)教师表不保存(父)用户表中id表中的user_id。我得到没有错误,但user_id是0在教师表,所以它不捡起它从用户表。我在两个模型上有一对一的关系。我只是测试保存超过2个模型,我有一个用户和老师。我只是在表单中输入数据,并创建一

  • 问题内容: 我的问题是,我想在数据库中存储一个具有多个电话号码的人。对于单个数字变量,每个变量将只存储一个数字。 现在,如果我想添加另一个电话号码,它将创建另一个新记录,该记录具有相同的详细信息,但具有不同的号码。 我想一起显示所有这些数字。有人可以帮忙吗? 问题答案: 您可以使用第二个表来存储数字,并使用外键链接回去: 第二张表将保存数字… 然后,您可以获取像这样的数字… 这是一个简单的例子。如

  • 我有下表,目前我可以更新用户对象来添加或删除角色,但我不能在创建新用户时向其添加角色(用户的角色添加到UI上的同一表单上),因为中间表User_Role希望用户的ID为Obj,所以在插入时,我自然得到一个User.user_id=?。 有什么常见的方法可以解决这个问题吗?我在考虑也许尝试在保存后获取插入用户的ID,然后调用更新函数。我不想这样做,因为我担心性能,特别是在未来可能发生批量上传的时候。

  • 问题内容: 我在保存包含“直通”类表的m2m数据时遇到了麻烦。我想将所有选定的成员(在表单中选择)保存在通过表中。但是我不知道如何在视图中初始化“通过”表。 我的代码: 并在视图中: 我应该如何初始化要正确填充的Membership表的成员资格? 问题答案: 如果使用正常的m2m关系(不通过中间表),则可以替换: 与 但是,在使用中间表的情况下,你需要手动处理POST数据并创建具有所有必填字段的M