从控制器中的 url 获取 id 值并显示关联的值 laravel
Getting id value from url in controller and displaying values associated laravel
我正在尝试使用 laravel jetstream 和 livewire 创建一个票务管理系统。在用户页面中有一个 table,其中包含用户创建的所有票证。当用户点击按钮打开一张特定的工单时,它应该传递工单的 ID 并重定向到另一个页面,在那里它接收他点击的那张工单的数据,如标题、消息等。
id 通过 url 传递,但我的主要问题是每当我尝试在视图中显示该数据时,没有任何显示,也没有错误。我认为我的控制器可能有问题。
这是我的路线:
Route::get('tickets.answers/{id}', [TicketsController::class, 'answers']);
重定向到该特定工单的按钮:
<a href="{{ url('tickets.answers' . '/'. $ticket->id ) }}" > <x-jet-secondary-button >
See Answer
</x-jet-secondary-button></a>
答案控制器:
public function render(Request $request)
{
$tickets = Ticket::where('id', $request->url('id'));
return view('livewire.tickets.answers', [
'tickets' => $tickets,
]);
}
以及我如何尝试在 blade 中显示:
@foreach($tickets as $key => $ticket)
<!-- This example requires Tailwind CSS v2.0+ -->
<div class="bg-white shadow overflow-hidden sm:rounded-lg">
<div class="px-4 py-5 sm:px-6">
<h3 class="text-lg leading-6 font-medium text-gray-900">
Ticket nº {{$ticket->id}} - {{$ticket->title}}
</h3>
</div>
</div>
@endforeach
在您的 TicketsController
中,您可以像这样获取 id
public function answer(Request $request, int $id)
{
// Use the find() method, instead of where(), when searching for the primary key
$tickets = Ticket::find($id);
// .. more
}
在你的路由文件中你指定了一个 answer
方法,所以在你的 TicketsController
.
中使用它
// See how to name a route
Route::get('tickets.answers/{id}', [TicketsController::class, 'answers'])->name('tickets.answers');
然后在您的视图中使用命名路由,如下所示:
<a href="{{ route('tickets.answers', ['id' => $ticket->id]) }}">
您可以在 Laravel docs 中看到类似的示例。
我正在尝试使用 laravel jetstream 和 livewire 创建一个票务管理系统。在用户页面中有一个 table,其中包含用户创建的所有票证。当用户点击按钮打开一张特定的工单时,它应该传递工单的 ID 并重定向到另一个页面,在那里它接收他点击的那张工单的数据,如标题、消息等。
id 通过 url 传递,但我的主要问题是每当我尝试在视图中显示该数据时,没有任何显示,也没有错误。我认为我的控制器可能有问题。
这是我的路线:
Route::get('tickets.answers/{id}', [TicketsController::class, 'answers']);
重定向到该特定工单的按钮:
<a href="{{ url('tickets.answers' . '/'. $ticket->id ) }}" > <x-jet-secondary-button >
See Answer
</x-jet-secondary-button></a>
答案控制器:
public function render(Request $request)
{
$tickets = Ticket::where('id', $request->url('id'));
return view('livewire.tickets.answers', [
'tickets' => $tickets,
]);
}
以及我如何尝试在 blade 中显示:
@foreach($tickets as $key => $ticket)
<!-- This example requires Tailwind CSS v2.0+ -->
<div class="bg-white shadow overflow-hidden sm:rounded-lg">
<div class="px-4 py-5 sm:px-6">
<h3 class="text-lg leading-6 font-medium text-gray-900">
Ticket nº {{$ticket->id}} - {{$ticket->title}}
</h3>
</div>
</div>
@endforeach
在您的 TicketsController
中,您可以像这样获取 id
public function answer(Request $request, int $id)
{
// Use the find() method, instead of where(), when searching for the primary key
$tickets = Ticket::find($id);
// .. more
}
在你的路由文件中你指定了一个 answer
方法,所以在你的 TicketsController
.
// See how to name a route
Route::get('tickets.answers/{id}', [TicketsController::class, 'answers'])->name('tickets.answers');
然后在您的视图中使用命名路由,如下所示:
<a href="{{ route('tickets.answers', ['id' => $ticket->id]) }}">
您可以在 Laravel docs 中看到类似的示例。