如何在laravel中重定向到该URL?

时间:2019-03-21 11:40:29

标签: php laravel laravel-5.2

这里定义了我的一些路线:

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视图,只有一个链接可以通过控制器方法重定向到仪表板。

 <html>

 <body>
    <h2><a href="/lvel/public/redd/">Click Me To Redirect to DashBoard</a> 
    </h2>

 </body>
 </html>

现在我要做的就是单击test.blade.php中的视图链接时直接重定向到dashboard.blade.php

但是我得到了

      Route [dashboard.dashboard] not defined

请帮助您如何为此定义路线或解决方案。 我是Laravel的新手。 谢谢。

6 个答案:

答案 0 :(得分:3)

您必须按照documentation命名路线:

Route::get('/success', function () {
     return view('dashboard/dashboard');
})->name('dashboard.dashboard');

答案 1 :(得分:3)

要使用route()函数,您需要为路由指定以下名称:

Route::get('/success', function () {
    return view('dashboard/dashboard');
})->name('dashboard.dashboard');

答案 2 :(得分:3)

路线

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> 

答案 3 :(得分:1)

我希望它能正常工作

select t.*, regexp_substr(file_id, '^[0-9]+') as file_id
from t;

答案 4 :(得分:1)

尝试这个简单的解释

Error: Cannot perform an interactive login from a non TTY device

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

答案 5 :(得分:1)

每个人都已经回答了您的问题(尤其是@ka_lin),是否需要重定向,您只需执行一个简单命名的路由并使用以下命令重定向到它即可:

Route::get('/success', function () {
     return view('dashboard/dashboard');
})->name('dashboard.dashboard');

要进一步扩展答案,将每个动作添加到Controller总是一个很好的逻辑,您可能会问为什么。因为如果您想通过使用命令php artisan route:cache进行缓存来优化路由,则会遇到问题:此命令不适用于Closure based routes(又名匿名函数)。

通过将路由传递到Controller,您可以拥有基于类的路由所带来的巨大优势。

一个例子是:

Route::get('/dashboard/dashboard','TestController@dashboard' )->name('dashboard.dashboard');

,在dashboard函数中,您可以像在Closure中一样调用视图:

return view('dashboard/dashboard');

更不用说,一切都保持在逻辑小隔间中。