laravel刀片中的调用关系

Posted

技术标签:

【中文标题】laravel刀片中的调用关系【英文标题】:call relationship in laravel blade 【发布时间】:2021-08-10 04:25:13 【问题描述】:

如下所述,我有 3 个表格。

表 1(用户):

|id    |name  |keterangan |role_id |provinsi_id   |

表2(角色):

|id  |name  |description |

表3(省)

|id |name |description  |

用户模型:

class User extends Authenticatable

  

    public function role()
    
        return $this->belongsTo(Role::class);
    

    public function provinsi()
    
        return $this->belongsTo(Provinsi::class);
    


榜样:

class Role extends Model

    //
    


省模型

class Provinsi extends Model

    


用户控制器

class UserController extends Controller
  public function index()
    
        //$users = User::latest()->paginate(5);
         $users = User::with(['role', 'provinsi'])->latest()->paginate(5);
  
        return view('users.index',compact('users'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    

index.blade

 @foreach ($users as $user)
               <tr>
                   <td> $user->nama </td>
                   <td> $user->email </td>
                   <td> $user->nip_lama </td>
                   <td> $user->role->name</td>
                   <td> $user->provinsi->name</td
                 </tr>
  @endforeach

如何在 index.blade 中获取角色名称和省名称,因为该代码将导致 像这样在表格 html 中:

<td>"id":4,"name":"Change Agent","description":null, "created_at":null,"updated_at":null</td>

还有这个

<td>"id":2,"name":"Gorontalo","description":null,"created_at":null,"updated_at":null </td>

注意:json 已经返回 corecct 角色和 provinsi 但我想要的结果只是

 <td>admin</td>
 <td>gorontalo</td>

我试过 php artisan tinker,每当我打电话时它都会返回 Change Agent/Gorontalo $user->provinsi->名字

谢谢

【问题讨论】:

【参考方案1】:

您需要将关系附加到控制器中的模型。

class UserController extends Controller
  public function index()
    
        //
        $users = User::with(['role', 'provinsi')->latest()->paginate(5);
  
        return view('users.index',compact('users'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    

【讨论】:

$users = User::with(['role', 'provinsi'])->latest()->paginate(5);当我调用 $用户->角色->名称 定义反向关系后重试。【参考方案2】:

在上面的代码中,您缺少一些大括号。

  <td> $user->provinsi->name</td>

应该是

  <td> $user->role->name</td>
  <td> $user->provinsi->name</td>

你找到了吗?

【讨论】:

以上是关于laravel刀片中的调用关系的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 从刀片视图中的模型关系中检索属性

刀片模板中的多对多关系中的 Laravel 嵌套查询

从 laravel 刀片调用 vue 方法

Laravel:在刀片模板中调用静态函数

laravel:如何包含刀片布局中的部分?

Laravel 刀片混合关系。我怎样才能做到这一点?