拉拉威尔刀片中的呼叫关系



我有下面提到的3个表。

表1(用户(:

|id    |name  |keterangan |role_id |provinsi_id   |

表2(角色(:

|id  |name  |description |

表3(provinsis(

|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
{
//

}

provinsi型

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刀片

@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中获取角色名称和provinsi名称,因为该代码会导致如表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-artisttick,每当我调用它时,它都会返回ChangeAgent/Gorontalo$user->provinsi->名称

谢谢

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

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);
}
}

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

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

应该是

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

你发现了吗?

最新更新