【发布时间】:2019-08-19 10:00:06
【问题描述】:
数据库由两个表组成; 1 个名为 project 的表和 1 个名为 tasks 的表。 一个项目可以有多个任务。 使用多选下拉菜单,可以选择多个元素(用户)并通过数组发送到数据库。
用户的插入工作正常,但项目 ID 插入工作不正常。插入“null”而不是引用项目的 id。
我找不到丢失的东西。感谢您的帮助。
输出:
array:2 [▼
0 => array:2 [▼
"project_id" => null
"user" => "Jan"
]
1 => array:2 [▼
"project_id" => null
"user" => "Piet"
]
]
项目表
+----+------+------+-----------------+
| id | Name | Time | What |
+----+------+------+-----------------+
| 1 | Test | 123 | Testing project |
| 2 | Tell | 2 | Knowing project |
| 3 | Pet | 5 | Telling pets |
+----+------+------+-----------------+
任务表
+----+------+-----------+
| id | user | poject_id |
+----+------+-----------+
| 1 | Jan | 1 |
| 2 | Piet | 1 |
| 3 | Tom | 2 |
+----+------+-----------+
项目.php
public function tasks()
{
return $this->hasMany('App\Taks', 'project_id');
}
任务.php
public function project()
{
return $this->belongsTo('App\Project', 'id', 'project_id');
}
ProjectTasksController.php
public function store(Request $request)
{
$task = new Task();
$data = $request->all();
foreach ($request->get('user') as $user){
$users[] = [
'project_id' => $request->project_id,
'user' => $user
];
}
dd($users);
show.blade.php
<form action="/projects/{{$project->id}}/tasks" method="post" >
@csrf
<div class="form-group">
<label for="user">New User</label>
<select multiple class="form-control" id="multiSelect" name="user[]">
<option>Jan</option>
<option>Piet</option>
<option>Nele</option>
<option>Tom</option>
<option>Tony</option>
</select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">New user</button>
</div>
</form>
结果 dd($request->all());
array:2 [▼
"_token" => "xxxx"
"user" => array:2 [▼
0 => "Jan"
1 => "Piet"
]
]
web.php
Route::post('/projects/{project}/tasks', 'ProjectTasksController@store');
【问题讨论】:
标签: php laravel forms foreign-keys