【问题标题】:Laravel: Passing {id} in hrefLaravel:在 href 中传递 {id}
【发布时间】:2020-07-08 10:33:17
【问题描述】:

我正在尝试在 href 链接中传递用户 ID,如下所示:-

app.blade.php

<a class="dropdown-item" href="{{route('user.profile', $user->id)}}">Profile </a>

app.php

Route::get('user/profile/{id}', 'UserProfileController@profile')->name('user.profile');

控制器 UserProfileController.js

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\User; 

class UserProfileController extends Controller
{
    //
    public function __construct()
    {
        $this->middleware('auth', ['except' => [ 'profile']]);
    }
    public function profile($id)
    {
        $user = User::find($id);
        return view('user.profile', compact('user') );
    }

}

错误

未定义变量:用户(查看:/home/riwaj/Desktop/dmt-intern-manager/InternManager/resources/views/layouts/app.blade.php)

【问题讨论】:

  • 那么,你在哪里定义$user
  • @El_Vanja 我已经编辑了问题并添加了控制器部分。
  • 这是app Blade 模板,您将该变量发送到user.profile Blade 模板。
  • @El_Vanja 我该怎么办?更换家庭控制器。有没有办法可以将变量发送到 app.blade 模板?
  • @RiwajChalise 就像它说的 $user 未定义。仔细检查使用未定义变量的根/主/单个页面

标签: php laravel laravel-routing


【解决方案1】:

你需要隐式声明 id:

<a class="dropdown-item" href="{{route('user.profile', ['id' => $user->id])}}">Profile </a>

【讨论】:

  • 他仍然会得到同样的错误,因为 $user 在 app.blade.php 中不可用
  • @Vishal 就像你说的那样。有什么解决办法?
  • 我不是专家,但据我了解,这是一个糟糕的设计 app.blade.php 是主布局文件,因此不应直接在主布局文件中定义此链接...你能显示路线吗for '/home' 它调用哪个控制器方法
  • 如果您的 app.blade.php 文件中需要用户,您可以使用 View Composer 在此处提供用户,但如果您为 app.blade.php 提供用户,请记住您不能将此文件用于来宾用户。 laravel.com/docs/7.x/views#view-composers
猜你喜欢
  • 2017-05-27
  • 2016-03-09
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 2019-03-06
  • 2018-07-25
  • 1970-01-01
相关资源
最近更新 更多