【问题标题】:call relationship in laravel bladelaravel刀片中的调用关系
【发布时间】: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->名字

谢谢

【问题讨论】:

    标签: arrays json laravel eloquent laravel-blade


    【解决方案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>
    

    你找到了吗?

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      相关资源
      最近更新 更多