显示 laravel 5.2 中的数组值
Displaying array values in laravel 5.2
我在 App\User.php
中有以下 hasMany()
关系,
public function partner_preference_occupation()
{
return $this-hasMany('App\Models\User\PartnerPreferenceOccupation', 'user_id');
}
以下是我的PartnerPreferenceOccupation模型,
<?php
namespace App\Models\User;
use App\Models\BaseModel,
App\Models\ValidationTrait;
class PartnerPreferenceOccupation extends BaseModel {
use ValidationTrait;
public function __construct() {
parent::__construct();
$this->__validationConstruct();
}
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'partner_preferences_occupation';
protected $fillable = array('user_id', 'occupation_id');
protected $dates = array();
public $uploadPath = array();
protected function setRules() {
$this->val_rules = array();
}
protected function setAttributes() {
$this->val_attributes = array();
}
public function occupation_name() {
return $this->belongsTo('App\Models\Master\OccupationModel', 'occupation_id');
}
}
我想在我的视图中显示职业名称数组。我尝试了以下代码,但它失败了。
{{$obj->partner_preference_occupation ? $obj-partner_preference_occupation->occupation_name->name : null}}
错误如下,
Undefined property:Illuminate\Database\Eloquent\Collection::$occupation_name
如何提前显示them.Thanks
$obj-partner_preference_occupation->occupation_name->name
中有错别字
应该是$obj->partner_preference_occupation->occupation_name->name
确保集合中存在 occupation_name
。您可以在视图中执行以下操作来检查:
dump( $obj->partner_preference_occupation );
它可能会帮助您确定问题所在。
另外,要将集合显示为数组,可以使用toArray()
方法,例如:
$obj->partner_preference_occupation->toArray()
好的,我明白了,
因为它是要获取的值数组,所以我使用 foreach 将它们显示在我的视图中,
@if($occ=$obj->partner_preference_occupation->lists('occupation_name'))
@foreach($occ as $oc)
{{$oc->name}}
@endforeach
@endif
occupatoin_name 是我在模型中使用的关系名称。这对我有用:)
我在 App\User.php
中有以下 hasMany()
关系,
public function partner_preference_occupation()
{
return $this-hasMany('App\Models\User\PartnerPreferenceOccupation', 'user_id');
}
以下是我的PartnerPreferenceOccupation模型,
<?php
namespace App\Models\User;
use App\Models\BaseModel,
App\Models\ValidationTrait;
class PartnerPreferenceOccupation extends BaseModel {
use ValidationTrait;
public function __construct() {
parent::__construct();
$this->__validationConstruct();
}
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'partner_preferences_occupation';
protected $fillable = array('user_id', 'occupation_id');
protected $dates = array();
public $uploadPath = array();
protected function setRules() {
$this->val_rules = array();
}
protected function setAttributes() {
$this->val_attributes = array();
}
public function occupation_name() {
return $this->belongsTo('App\Models\Master\OccupationModel', 'occupation_id');
}
}
我想在我的视图中显示职业名称数组。我尝试了以下代码,但它失败了。
{{$obj->partner_preference_occupation ? $obj-partner_preference_occupation->occupation_name->name : null}}
错误如下,
Undefined property:Illuminate\Database\Eloquent\Collection::$occupation_name
如何提前显示them.Thanks
$obj-partner_preference_occupation->occupation_name->name
应该是$obj->partner_preference_occupation->occupation_name->name
确保集合中存在 occupation_name
。您可以在视图中执行以下操作来检查:
dump( $obj->partner_preference_occupation );
它可能会帮助您确定问题所在。
另外,要将集合显示为数组,可以使用toArray()
方法,例如:
$obj->partner_preference_occupation->toArray()
好的,我明白了, 因为它是要获取的值数组,所以我使用 foreach 将它们显示在我的视图中,
@if($occ=$obj->partner_preference_occupation->lists('occupation_name'))
@foreach($occ as $oc)
{{$oc->name}}
@endforeach
@endif
occupatoin_name 是我在模型中使用的关系名称。这对我有用:)