php - 关系有问题,找不到属性
问题描述
我的关系有问题,找不到属性,
错误:试图获取非对象的属性“服务”
控制器:
public function index(Request $personal){
$personal = Personal::where('nombre' , $personal)->with('nombre')->get();
$servicios = \App\Models\Eventos::orderByDesc('hora')->get();
return view('personal', compact('servicios','personal'));
}
模型服务:
class Servicios extends Model
{
use HasFactory;
public function eventos()
{
return $this->belongsTo(Evento::class);
}
public function personal()
{
return $this->belongsTo(Personal::class);
}
}
模型事件:
class Eventos extends Model
{
protected $table= 'eventos';
//
protected $fillable = [
'titulo', 'descripcion', 'fecha', 'hora', 'prioridad', 'servicio', 'personal',
];
public $timestamps = false;
public function servicio()
{
return $this->belongsTo(Servicios::class);
}
public function personal()
{
return $this->belongsTo(Personal::class);
}
在刀片.php 中:
@foreach ($servicios as $hoy)
<td>{{$hoy->servicio_id->servicio}}</td>
@endforeach
数据库:
https://i.imgur.com/LvjR6qS.png
我不明白错误,所以我找不到该属性
解决方案
在Laravel
您可以访问作为属性访问的函数名称的关系。
以下应该可以解决您的问题。有关系fillable
没有任何作用。
@foreach ($servicios as $hoy)
<td>{{ $hoy->servicio->servicio_property_to_access }}</td>
@endforeach
更新
如果我没记错的话,你的模型上有一个服务字段,重命名关系可能会有所帮助。
class Eventos extends Model
{
public function servicioRelationship()
{
return $this->belongsTo(Servicios::class);
}
@foreach ($servicios as $hoy)
<td>{{ $hoy->servicioRelationship->servicio }}</td>
@endforeach
推荐阅读
- python - PANDAS - 当它适用于一个系列时,日期显示错误 NaN 而不是日期,但不适用于另一个系列。两者都有完全相同的方法
- azure - Powerapps 的 ALM
- javascript - 地理位置 MongoDB 查询 maxDistance
- variables - 如何在 terraform 中为 s3 后端声明变量?
- java - 如何将 Proto 对象序列化/反序列化到 Android 项目中的本地存储?
- dask - 来自库的 Dask 循环开销
- c# - 无法使用 IXmlSerializable.ReadXml 反序列化自定义字典
- c# - 如何在主文件夹中使用用户的用户 ID 创建子文件夹?
- hl7-fhir - _RevInclude in hl7.fhir
- flutter - 扑医生错误。Git 不在你的路径中