我使用称为“ $product->relations->product_owner->user->attributes->name
”的外键在产品和用户之间建立了关系。当我将传递的值转储到视图中时,可以看到以下数据可用:
{{ $product->product_owner->user->name }}
但是如何从我的视图中访问它。我正在尝试浏览产品,然后执行以下操作:
{{ $product->product_owner->name }}
或
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for (int appWidgetId : appWidgetIds) {
//TinyDb is SharedPreferences Class
TinyDB tinydb = new TinyDB(context);
int WidgetId= tinydb.getInt("WidgetID",-1);
//Check if WidgetID is same as Added ID if yes UPDATE
if (WidgetId == appWidgetId){
updateAppWidget(context, appWidgetManager, appWidgetId);
return;
//Check if no widget is added then add widget and save widget ID to sharedPreferences
} else if (WidgetId == -1){
tinydb.putInt("WidgetID", appWidgetId);
updateAppWidget(context, appWidgetManager, appWidgetId);
return;
}
else
{
//Make toast to tell the user that only one widget is allowed
Toast.makeText(context, context.getResources().getString(R.string.Only_one_widget_allowed), Toast.LENGTH_SHORT).show();
}
}
}
但都不行,继续获取:
”试图获取非对象的属性“名称”
答案 0 :(得分:2)
如果name
是属性,而product_owner
是关系函数,请尝试以下操作:
{{ $product->product_owner()->name }}
答案 1 :(得分:2)
您认为代码必须与此类似
@foreach($products as $product)
{{ $product->product_owner->name }}
@endforeach
此代码表示每个产品都有product_owner。当一个产品不具有product_owner
时,$product->product_owner
的大小写值为Null,那么您的代码为null->name
,则会出错。要进行修复,您必须检查关系是否为空或使用??
运算符。将您的代码更改为
@foreach($products as $product)
{{ $product->product_owner->name ?? ''}}
@endforeach
或
@foreach($products as $product)
@if($product->product_owner)
{{ $product->product_owner->name}}
@endif
@endforeach
答案 2 :(得分:1)
您的product_owner不是stdClass。它是数组。因此,您无法使用“->”运算符访问此数组的键。尝试
{{ $product->product_owner['name'] }}