Laravel 5.2:打开同一用户的不同选项卡

时间:2016-11-16 08:16:41

标签: database laravel

我正在尝试将用户ID与已保存在数据库中的用户ID匹配,以便在匹配时显示用户的不同详细信息。但它显示错误:

NotFoundHttpException in RouteCollection.php line 161

此外,我想在用户ID匹配时立即打开用户的不同详细信息,但它也无法正常工作。当我在没有欢迎页面的情况下尝试它,并且只是在URL中写入user_id时,它显示了第一个选项卡,但是当我单击第二个选项卡时,它显示错误。详细信息和官方是导航栏和功能的选项卡。

welcome blade.php:

<form action="action_page.php">
    Enter user id:
    <input type="number" name="user_id">
    <input type="submit">
</form>

UserController中:

public function getUser(Request $request)
{
    if (Auth::attempt(['user_id' => $user_id]))  {

        return redirect()->route('pages.Details');
    }

        return redirect()->back();   
}


public function getPD($user_id)
{
    $user = User::Find($user_id);
    return view('pages.Details')->withUser($user);
}

public function getOD($user_id)
{
    $user = User::Find($user_id);
    return view('pages.Official')->withUser($user);
}

用户模型:

protected $table = 'tbl_user';
protected $primaryKey = 'user_id';

routes.php文件:

Route::get('/', function () {
return view('welcome');
});

Route::get('/User',[
    'uses' => 'UserController@getUser',
    'as'   => 'getUser'
    ]);

Route::get('/PD',[
    'uses' => 'UserController@getPD',
    'as'   => 'PD'
    ]);

我尝试了很多方法,但它没有用。请告诉我该怎么做。欢迎任何建议。

如何允许用户从数据库中匹配其用户ID,然后通过首先显示详细信息选项卡以及当用户单击官方选项卡时显示详细信息,它会显示该表。

2 个答案:

答案 0 :(得分:0)

Auth:attempt()用于验证用户身份而不是获取用户。如果您想通过id获取用户,则需要更改此功能:

public function getUser(Request $request)
{
    if (Auth::attempt(['user_id' => $user_id]))  {

        return redirect()->route('pages.Details');
    }

        return redirect()->back();   
}

为:

public function getUser(Request $request)
{
    $userid= $request['user_id'];
    $user = App\User::find($userid);
    return redirect()->route('pages.Details')->with('user',$user);
}

并在您的详细信息模板中使用$user

答案 1 :(得分:0)

从您的getUser()方法看,您似乎希望将经过身份验证的用户重定向到与未经身份验证的用户不同的页面。以下是您可以做的事情:

welcome.blade.php

<form method="GET" action="{{ route('getUser') }}">
    {{ csrf_field() }}
    <label for="user_id_input" >Enter user id:</label>
    <input type="number" id="user_id_input" name="user_id" value="{{ old('user_id') }}>
    <input type="submit">
</form>

routes.php文件

Route::get('/', function () {
    return view('welcome');
});

Route::get('/user',[
    'uses' => 'UserController@getUser',
    'as'   => 'getUser'
]);

Route::get('/PD',[
    'uses' => 'UserController@getPD',
    'as'   => 'PD'
]);

UserController.php

public function getUser(Request $request)
{
    $user_id= $request->get('user_id');

    if(Auth::check() && Auth::user()->id === $user_id){
        return redirect()->route('PD');
    }

    return back()->withInput();;
}

public function getPD($user_id)
{
    $user = User::findOrFail($user_id);
    return view( 'pages.Details', compact('user') );
}

public function getOD($user_id)
{
    $user = User::findOrFail($user_id);
    return view( 'pages.Official', compact('user') );
}

查看文件结构

-views
    -pages
        -Details.blade.php
        -Official.blade.php
    -welcome.blade.php

在Details.blade.php文件中使用$user