php - Laravel(如何将数据添加到数据库)
问题描述
这是我的代码,显示分配给用户的项目。
家庭控制器
public function index()
{
$companies = auth()->user()->companies;
$projects = Project::whereIn('company_id',$companies->pluck('id'))->get();
return view('home',compact('companies','projects'));
}
主页.blade.php
@forelse($projects as $project)
<a href="{{ route('issues.show', $project->id) }}" class="text-xl font-bold m-5 text-white">{{$project->title}}</a>
@empty
<p>No Projects</p>
@endforelse
ProjectController 显示项目中的问题。
public function show($id){
$project = Project::findOrFail($id);
$issues = $project->issues;
return view('issues', compact('issues', 'project'));
}
路线:
Route::get('/issues/{id}', [\App\Http\Controllers\ProjectController::class, 'show'])->name('issues.show');
问题.blade.php
@forelse($issues as $issue)
<a href="" class="text-xl font-bold m-5 text-white">{{$issue->title}}</a>
@empty
<p>No Issues</p>
@endforelse
我在问题页面中创建了一个按钮,该按钮显示了一个模式,该模式具有为所选项目添加问题的表单。你能帮我解决这个问题吗?关于如何做到这一点?
解决方案
假设您有这样的项目控制器。
public function show($id){
$project = Project::findOrFail($id);
return view('issues', compact('project'));
}
您不必将问题传递给刀片。您可以在那里轻松打印。
你的刀片
<table>
@foreach($project->issues as $issue)
<tr>
<td>{{ $issue->name }}</td>
</tr>
@endforeach
</table>
您在刀片中的弹出窗口中的表单
<form action="#" method="POST">
<input name="project_id" type="hidden" value="{{ $project->id }}"/>
<!-- all inputs you need -->
</form>
所以我们做了什么。您将项目 ID 粘贴到隐藏输入中的表单中。所以现在,在表单提交后,您project_id
在请求中调用了后端输入。
在您的问题控制器中
public function show(Request $request){
dd($request->project_id); //there is your project_id
}
可能您project_id
的问题中有专栏。所以你可以用$issue->associate($project_id)
. 这只是一个例子!!
我不知道您需要在问题中保存的其他字段,所以我无法为您提供更多帮助。我想你已经拥有了制作草稿所需的一切。:)
总帐