Laravel在路由

时间:2017-06-05 15:09:44

标签: laravel laravel-5

所以我有一个路线简介/ {user_id}

如何在用户点击链接时将用户重定向到该网址?

这是我的控制人员:

{
    function checkid($user_id) {
      if (Auth::check())
      {
        $user_id = Auth::id();
        return view('profile', [
        'id' => $user_id
        ]);
      }
    }
}

2 个答案:

答案 0 :(得分:2)

与问题混淆但是Laravel使用ID作为依赖注入的默认值并且更改它很简单:只需更改实例中模型BUT中的routeKey,即使用登录用户。所以忘了身份证!

<?php

    namespace App\Http\Controllers;

    class RandomController extends Controller {
        public function index()
        {
            return view('profile');//use auth facade in blade.
        }
    }

在您的路由中使用中间件来阻止没有经过身份验证的用户访问此方法

<?php

Route::group('/loggedin', [
    'middleware' => 'auth',
], function() {

    Route::get('/profile', 'RandomController@index')->name('profile.index');

});

现在要在您的刀片文件中重定向使用路由功能,如果您已缓存路线,请不要忘记清除缓存!

<h1>Hi! {{Auth::user()->name}}</h1>
<a href="{{route('profile.index')}}">View profile</a>

因为我在路由上使用了name方法,所以我可以将该路由名称传递给路由功能。使用php artisan route:list将列出所有路由参数,这些参数很酷,因为它还会告诉您名称和中间件等。

如果我有一条需要参数的路线; route函数接受一个params数组作为第二个参数。 route('profile.index', ['I_am_a_fake_param' => $user->id,])

如果您需要其他任何帮助,请告诉我。

答案 1 :(得分:0)

您可以使用redirect()辅助方法重定向,如下所示:

return redirect()->url('/profile/' . $user_id);

但我并没有真正关注你的用例?你为什么要重定向?您是否总是希望用户访问自己的个人资料?因为您现在使用的是经过身份验证的用户的ID,所以user_id参数几乎没用。