[英]Laravel URL rewriting and routing
我正在編寫一個基於 laravel 的 webapp。 但是在路由 function 時遇到了一些困難。 你能通過提供合適的代碼來幫助我嗎?
讓我們從一個例子開始。
用戶在索引頁面http://example.com在此頁面上有一個動態生成的 url 列表。
每個 url 的格式都類似於 - http://example.com/messages?n=79688
這里 79688 是消息 ID。
它希望 url 像http://example.com/messages/79688
這里是 web.php //消息路由
Route::get('/messages', 'HomeController@messages')->name('Messages');
這是 HomeController.php
public function messages(Request $request)
{
if(isset($request->n)) {
$number = $request->input('n');
$number_check = Number::select('type')->where('number', $number)->first();
$per_page = env('PER_PAGE', 15);
$query = Message::where('number', $number);
$messages = $query->orderBy('created_at', 'DESC')->paginate($per_page);
$messages->withPath('?n='.$number);
return view('messages')->with('messages', $messages)->with('number', $number)->with('count', $messages->total());
} else {
return redirect()->route('Main')->with('error', "Message not found");
}
}
你能告訴我如何修改這個 controller 以便它可以捕獲來自 url http://example.com/messages/796的消息 id
用它
路線
Route::get('/messages/{number}', 'HomeController@messages')->name('Messages');
Controller
public function messages(int $number){
讓你的路線像
Route::get('/messages/{number}', 'HomeController@messages')->name('messages');
你的按鈕會像
<a href="{{ route('messages',$message->id) }}">
<button >Click Here</button>
</a>
這里的
$message->id
是您要在 url 中傳遞的數字。
和你的 controller
public function messages($number)
{
$number_check = Number::select('type')->where('number', $number)->first();
$per_page = env('PER_PAGE', 15);
$query = Message::where('number', $number);
$messages = $query->orderBy('created_at', 'DESC')->paginate($per_page);
$messages->withPath('?n='.$number);
return view('messages')->with('messages', $messages)->with('number', $number)->with('count', $messages->total());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.