【问题标题】:Laravel 5.2: Opening different tabs of the same userLaravel 5.2:打开同一用户的不同选项卡
【发布时间】:2018-04-26 12:53:38
【问题描述】:

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

NotFoundHttpException in RouteCollection.php line 161

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

欢迎blade.php:

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

用户控制器:

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,然后通过首先出现详细信息选项卡来显示它的详细信息,当用户点击官方选项卡时,它将显示该表。

【问题讨论】:

  • 你没有遵循 laravel 结构。转到 laravel Docs 看看如何工作。
  • 请你告诉我我在哪里没有遵循 laravel 结构?

标签: database laravel


【解决方案1】:

Auth:attemp() 用于验证用户而不是获取用户。如果你想通过 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

【讨论】:

    【解决方案2】:

    从您的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'
    ]);
    

    用户控制器.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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-21
      • 2021-05-11
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      相关资源
      最近更新 更多