【问题标题】:Getting id value from url in controller and displaying values associated laravel从控制器中的 url 获取 id 值并显示关联 laravel 的值
【发布时间】:2021-05-08 22:43:48
【问题描述】:

我正在尝试使用 laravel jetstream 和 livewire 创建一个票务管理系统。在用户页面中有一个表格,其中包含用户创建的所有票证。当用户点击按钮打开一个特定的工单时,它应该传递工单的 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,
       
    ]);
    }

以及我如何尝试在刀片中显示:

@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

【问题讨论】:

    标签: laravel laravel-livewire jetstream


    【解决方案1】:

    在您的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 中看到类似的示例。

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2021-11-25
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    相关资源
    最近更新 更多