2017-02-09 1 views
0

나는 App\User.php에서 다음 hasMany() 관계, 표시 배열 값 5.2

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를 표시 할 수 있습니다.

답변

0

좋아, 사용의 foreach :

또한 어레이로서 컬렉션을 표시하려면, toArray() 방법 등을 사용하여 내보기에 표시하려면

@if($occ=$obj->partner_preference_occupation->lists('occupation_name')) 
@foreach($occ as $oc) 
{{$oc->name}} 
@endforeach 
@endif 

occupatoin_name은 내 모델에서 사용한 나의 관계 이름입니다. 그리고 그 날 :) 근무

Niraj, 내가 사용하는 경우, 덤프
0

$obj->partner_preference_occupation->occupation_name->nameoccupation_name가 컬렉션에 있는지 확인이어야한다 $obj-partner_preference_occupation->occupation_name->name

에 오타가 있습니다. 보기에서 다음을 수행하여 확인할 수 있습니다.

dump($obj->partner_preference_occupation); 

문제가있는 곳을 식별하는 데 도움이 될 수 있습니다. I가로서는 페치 될 값의 어레이이고, 그것을 가지고

$obj->partner_preference_occupation->toArray() 
+0

감사 ($를 OBJ> partner_preference_occupation) 나는이 배열처럼 가지고 : 2 [▼ 0 => 배열 : 5 [▼ "ID"= > 36 "user_id"=> 93 "occupation_id"=> 19 "created_at"=> "2017-02-09 12:12:17" "updated_at"=> "2017-02-09 12:12 : 17 " ] 1 => 배열 : 5 ▼ "ID "=> 37 "USER_ID "=> 93 "occupation_id "=> 9 "created_at "=> 널 "updated_at "=> 널 ] ] 각 직업의 ID를 어떻게 얻을 수 있습니까? – Rose

+0

있습니다. 이것은'occupation_id'와'occupation' 테이블 사이에 관계가 없다는 것을 의미합니다. 모델에서이 관계를 만들어야합니다. –

+0

하지만 아래 코드를 내 App \ User에 작성했습니다. public function partner_preference_occupation() { return $ this-> hasMany ('App \ Models \ UserPanferenceOccupation', 'user_id'); } 내 모델에서 다음과 같은 관계를 정의했습니다. public function occupation_name() { return $ this-> belongsTo ('App \ Models \ Master \ OccupationModel', 'occupation_id'); } – Rose