[英]Property [TitleEn] does not exist on this collection instance
我出于某种原因尝试了所有操作,即使我选择了一个具有该ID的东西,也一直收到此错误,并且当我在控制器上dd将其正确时,但在视图中给出了错误信息
$affilliate = Affiliate::find($id);
if (App::getLocale() == 'ar') {
$affilliate->TitleEn = $affilliate->TitleAr;
$affilliate->DescriptionEn = $affilliate->DescriptionAr;
$affilliate->ContentEn = $affilliate->ContentAr;
}
if (App::getLocale() == 'ur') {
$affilliate->TitleEn = $affilliate->TitleUr;
$affilliate->DescriptionEn = $affilliate->DescriptionUr;
$affilliate->ContentEn = $affilliate->ContentUr;
}
if (App::getLocale() == 'ch') {
$affilliate->TitleEn = $affilliate->TitleCh;
$affilliate->DescriptionEn = $affilliate->DescriptionCh;
$affilliate->ContentEn = $affilliate->ContentCh;
}
return view('affilliates.affilliate-details')
->with('Affiliates', $affilliate);
这是我的看法
<div class="row">
<div class="col-xs-12">
<h3 class="orange-heading">{{$Affiliates->TitleEn}}</h3>
<hr class="orange-hr pull-left">
</div>
<div class="col-xs-12 lead">
<p>{!! $Affiliates->ContentEn !!} </p>
</div>
</div>
这样的事情对您有用吗? 通过获取App::getLocale()
并将第一个字母设置为大写(多一点DRY)来映射集合,以确保我们始终拥有TitleEn
, DescriptionEn
和ContentEn
$affilliate = Affiliate::where($id);
$affiliateMapped = $affiliate->map(function($affiliate) {
$locale = ucfirst(App::getLocale());
$affiliate['TitleEn'] = $affiliate["Title{$locale}"];
$affiliate['DescriptionEn'] = $affiliate["Description{$locale}"];
$affiliate['ContentEn'] = $affiliate["Content{$locale}"];
return $affiliate;
});
return view('affilliates.affilliate-details')
->with('Affiliates', $affiliateMapped);
如果您提供$affiliate
的dd()
并确认错误是否来自视图或控制器(尤其是哪一行dd()
,我可以更新我的答案。
更新 :当您with('Affiliates', $affilliate)
with('Affiliates', $affiliate)
书写时,您会遇到一个拼写错误with('Affiliates', $affilliate)
它应该是一个l
字符而不是两个字符,因此将其更改为with('Affiliates', $affiliate)
。 如果您是我,我会考虑进行重构,因此我将保留原来的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.