Как мне перенаправить на этот URL в laravel? - PullRequest
1 голос
/ 21 марта 2019

Здесь определены некоторые из моих маршрутов:

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>

Теперь я хочу просто перенаправить файл dashboard.blade.php при нажатии нассылка на просмотр в test.blade.php

Но я получаю

      Route [dashboard.dashboard] not defined

Пожалуйста, помогите, как определить этот маршрут для этого или каково решение.Я новичок в Laravel.Благодаря.

Ответы [ 6 ]

3 голосов
/ 21 марта 2019

Маршрут

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 голосов
/ 21 марта 2019

Для использования функции route() необходимо дать маршруту имя следующим образом:

Route::get('/success', function () {
    return view('dashboard/dashboard');
})->name('dashboard.dashboard');
3 голосов
/ 21 марта 2019

Вы должны назвать маршрут согласно документации :

Route::get('/success', function () {
     return view('dashboard/dashboard');
})->name('dashboard.dashboard');
1 голос
/ 21 марта 2019

Все уже ответили (особенно на @ka_lin) на ваш вопрос: если вы хотите перенаправить, просто пройдите маршрут с простым именем и перенаправьте на него:

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

Для дальнейшего расширения ответов всегда полезно добавить каждое действие к Controller, и вы можете спросить, почему. Потому что, если вы хотите оптимизировать маршруты путем кэширования с помощью команды php artisan route:cache, у вас возникнет проблема: эта команда не работает с Closure based routes (анонимные функции a.k.a).

Передавая маршруты контроллеру, вы можете получить большие преимущества, связанные с маршрутами на основе классов.

Примером может быть:

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

и в функции dashboard вы можете вызывать представление так же, как в Closure:

return view('dashboard/dashboard');

Не говоря уже о том, что все остается организованным в маленькие логические отсеки.

1 голос
/ 21 марта 2019

попробуйте это простое объяснение

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>
1 голос
/ 21 марта 2019

Я надеюсь, что это будет работать точно

Route::get('/success', function () {
     return view('dashboard/dashboard');
})->name('dashboard.dashboard');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...