Laravel(在所选问题中显示项目标题)
Laravel (show project title in the selected issue)
我想在issue中显示所选项目的项目名称
HomeController(显示分配给用户的项目)
public function index()
{
$companies = auth()->user()->companies;
$projects = Project::whereIn('company_id',$companies->pluck('id'))->get();
return view('home',compact('companies','projects'));
}
ProjectController(显示所选项目的问题)
public function show($id){
$project = Project::find($id);
if(!$project)
abort(404);
$issues = $project->issues;
return view('issues', compact('issues'));
}
issue.blade.php
<div class="container">
<img src="assets/user.png" class="h-10 m-5 inline-block"><span class="font-bold text-xl">{{ auth()->user()->name }}</span>
<span class="font-bold text-xl">{{ $project->title }}</span>
<h1 class="ml-5 font-bold text-2xl">Issues</h1>
<div class="grid grid-cols-3 gap-4 md:grid-cols-3 m-5 ">
@forelse($issues as $issue)
<div class="bg-pink-700 h-32 rounded-md p-5 transition duration-500 ease-in-out hover:bg-black transform hover:-translate-y-1 hover:scale-110s">
<a href="" class="text-xl font-bold m-5 text-white">{{$issue->title}}</a>
</div>
@empty
@endforelse
</div>
</div>
路线
Route::get('/home', [\App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/issues/{id}', [\App\Http\Controllers\ProjectController::class, 'show'])->name('projects.show');
只是一个提示,而不是使用:
$project = Project::find($id);
if(!$project)
abort(404);
您可以使用 $project = Project::findOrFail($id);
现在回答你的问题:
您可以将 $project
模型传递给视图,而不仅仅是问题。
public function show($id){
$project = Project::findOrFail($id);
return view('issues', compact('project'));
}
然后你可以通过你的foreach循环中的->issues
关系得到相关问题:
<div class="container">
......
<span class="font-bold text-xl">{{ $project->title }}</span>
......
<div class="grid grid-cols-3 gap-4 md:grid-cols-3 m-5 ">
@forelse($project->issues as $issue)
.....
@empty
.....
@endforelse
</div>
</div>
我想在issue中显示所选项目的项目名称
HomeController(显示分配给用户的项目)
public function index()
{
$companies = auth()->user()->companies;
$projects = Project::whereIn('company_id',$companies->pluck('id'))->get();
return view('home',compact('companies','projects'));
}
ProjectController(显示所选项目的问题)
public function show($id){
$project = Project::find($id);
if(!$project)
abort(404);
$issues = $project->issues;
return view('issues', compact('issues'));
}
issue.blade.php
<div class="container">
<img src="assets/user.png" class="h-10 m-5 inline-block"><span class="font-bold text-xl">{{ auth()->user()->name }}</span>
<span class="font-bold text-xl">{{ $project->title }}</span>
<h1 class="ml-5 font-bold text-2xl">Issues</h1>
<div class="grid grid-cols-3 gap-4 md:grid-cols-3 m-5 ">
@forelse($issues as $issue)
<div class="bg-pink-700 h-32 rounded-md p-5 transition duration-500 ease-in-out hover:bg-black transform hover:-translate-y-1 hover:scale-110s">
<a href="" class="text-xl font-bold m-5 text-white">{{$issue->title}}</a>
</div>
@empty
@endforelse
</div>
</div>
路线
Route::get('/home', [\App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/issues/{id}', [\App\Http\Controllers\ProjectController::class, 'show'])->name('projects.show');
只是一个提示,而不是使用:
$project = Project::find($id);
if(!$project)
abort(404);
您可以使用 $project = Project::findOrFail($id);
现在回答你的问题:
您可以将 $project
模型传递给视图,而不仅仅是问题。
public function show($id){
$project = Project::findOrFail($id);
return view('issues', compact('project'));
}
然后你可以通过你的foreach循环中的->issues
关系得到相关问题:
<div class="container">
......
<span class="font-bold text-xl">{{ $project->title }}</span>
......
<div class="grid grid-cols-3 gap-4 md:grid-cols-3 m-5 ">
@forelse($project->issues as $issue)
.....
@empty
.....
@endforelse
</div>
</div>