如何在 laravel 中重定向到此 URL?
How to I redirect to this URL in laravel?
这里定义了一些我的路线:
Route::get('/success', function () {
return view('dashboard/dashboard');
});
Route::get('/test/{id?}','TestController@parameter' );
Route::get('/redd','TestController@redirectest' );
这是控制器方法:
public function redirectest(){
return redirect()->route('dashboard.dashboard');
}
现在我有两个名为
的视图
test.blade.php
dashboard.blade.php //In view/dashboard
这里是 test.blade.php 视图,只有一个 link 可以通过控制器方法重定向到仪表板。
<html>
<body>
<h2><a href="/lvel/public/redd/">Click Me To Redirect to DashBoard</a>
</h2>
</body>
</html>
现在我想做的只是在单击 test.blade.php
中的视图 link 时重定向到 dashboard.blade.php
但我得到了
Route [dashboard.dashboard] not defined
请帮忙定义这个路由或者解决方法是什么。
我是 Laravel 的新手。
谢谢。
您必须按照 documentation:
命名路线
Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
要使用 route()
功能,您需要为路由命名,如下所示:
Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
希望一定能成功
Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
试试这个简单的解释
Route file
Route::get('/dashboard','TestController@dashboard')->name('dashboard');
or
Route::get('/dashboard', ['as'=>'dashboard', 'uses'=>'TestController@dashboard']);
TestController.php
public function dashboard()
{
return view('dashboard'); //blade file
}
test.blade.php
<html>
<body>
<h2><a href="{{ route('dashboard') }}">Click Me To Redirect to DashBoard</a>
</h2>
</body>
</html>
路线
Route::get('/dashboard','TestController@dashBoard')->name('dash_board');
控制器
public function dashBoard()
{
return view('dashboard'); //redirect to view file
}
查看
<a href="{{ route('dash_board') }}">DashBoard</a>
每个人都已经回答了(尤其是@ka_lin)你的问题,如果你想重定向你只需做一个简单命名的路由并重定向到它:
Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
为了进一步扩展答案,将每个动作添加到 Controller
始终是一个很好的逻辑,您可能会问为什么。因为如果您想使用命令 php artisan route:cache
通过缓存来优化路由,您将会遇到问题:此命令不适用于 Closure based routes
(a.k.a 匿名函数)。
通过将路由传递给控制器,您可以获得基于 Class 的路由带来的巨大优势。
例如:
Route::get('/dashboard/dashboard','TestController@dashboard' )->name('dashboard.dashboard');
并且在 dashboard
函数中,您可以像在 Closure
:
中一样调用视图
return view('dashboard/dashboard');
更不用说一切都井井有条地组织在小的逻辑隔间中。
这里定义了一些我的路线:
Route::get('/success', function () {
return view('dashboard/dashboard');
});
Route::get('/test/{id?}','TestController@parameter' );
Route::get('/redd','TestController@redirectest' );
这是控制器方法:
public function redirectest(){
return redirect()->route('dashboard.dashboard');
}
现在我有两个名为
的视图 test.blade.php
dashboard.blade.php //In view/dashboard
这里是 test.blade.php 视图,只有一个 link 可以通过控制器方法重定向到仪表板。
<html>
<body>
<h2><a href="/lvel/public/redd/">Click Me To Redirect to DashBoard</a>
</h2>
</body>
</html>
现在我想做的只是在单击 test.blade.php
中的视图 link 时重定向到 dashboard.blade.php但我得到了
Route [dashboard.dashboard] not defined
请帮忙定义这个路由或者解决方法是什么。 我是 Laravel 的新手。 谢谢。
您必须按照 documentation:
命名路线Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
要使用 route()
功能,您需要为路由命名,如下所示:
Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
希望一定能成功
Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
试试这个简单的解释
Route file
Route::get('/dashboard','TestController@dashboard')->name('dashboard');
or
Route::get('/dashboard', ['as'=>'dashboard', 'uses'=>'TestController@dashboard']);
TestController.php
public function dashboard()
{
return view('dashboard'); //blade file
}
test.blade.php
<html>
<body>
<h2><a href="{{ route('dashboard') }}">Click Me To Redirect to DashBoard</a>
</h2>
</body>
</html>
路线
Route::get('/dashboard','TestController@dashBoard')->name('dash_board');
控制器
public function dashBoard()
{
return view('dashboard'); //redirect to view file
}
查看
<a href="{{ route('dash_board') }}">DashBoard</a>
每个人都已经回答了(尤其是@ka_lin)你的问题,如果你想重定向你只需做一个简单命名的路由并重定向到它:
Route::get('/success', function () {
return view('dashboard/dashboard');
})->name('dashboard.dashboard');
为了进一步扩展答案,将每个动作添加到 Controller
始终是一个很好的逻辑,您可能会问为什么。因为如果您想使用命令 php artisan route:cache
通过缓存来优化路由,您将会遇到问题:此命令不适用于 Closure based routes
(a.k.a 匿名函数)。
通过将路由传递给控制器,您可以获得基于 Class 的路由带来的巨大优势。
例如:
Route::get('/dashboard/dashboard','TestController@dashboard' )->name('dashboard.dashboard');
并且在 dashboard
函数中,您可以像在 Closure
:
return view('dashboard/dashboard');
更不用说一切都井井有条地组织在小的逻辑隔间中。