[英]Laravel URL rewriting and routing
I am coding a webapp based on laravel.我正在编写一个基于 laravel 的 webapp。 But getting some difficulties in routing function.
但是在路由 function 时遇到了一些困难。 Can you help me by providing suitable code.
你能通过提供合适的代码来帮助我吗?
Lets start with a example.让我们从一个例子开始。
User is on index page http://example.com On this page there is a list of urls that is dynamically generated.用户在索引页面http://example.com在此页面上有一个动态生成的 url 列表。
Every url has a format like - http://example.com/messages?n=79688每个 url 的格式都类似于 - http://example.com/messages?n=79688
here 79688 is message id.这里 79688 是消息 ID。
It want the url to be like http://example.com/messages/79688它希望 url 像http://example.com/messages/79688
Here is web.php //Route for Messages这里是 web.php //消息路由
Route::get('/messages', 'HomeController@messages')->name('Messages');
Here is HomeController.php这是 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");
}
}
Can you please tell me how to modify this controller so that it can catch message id from url http://example.com/messages/79688你能告诉我如何修改这个 controller 以便它可以捕获来自 url http://example.com/messages/796的消息 id
Use it用它
Route路线
Route::get('/messages/{number}', 'HomeController@messages')->name('Messages');
Controller Controller
public function messages(int $number){
make your route like让你的路线像
Route::get('/messages/{number}', 'HomeController@messages')->name('messages');
your button will be like你的按钮会像
<a href="{{ route('messages',$message->id) }}">
<button >Click Here</button>
</a>
here
$message->id
is the number you want to pass in the url.这里的
$message->id
是您要在 url 中传递的数字。
and your controller和你的 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.