2016-03-03 8 views
1

это может маршрутизировать кодLaravel 5,2 Eloquent отношения возвращают многомерный массив

Route::get('/dashboard',['middleware' => 'auth', function() { 

    $links = App\Website_links::where('website_id',1)->get(); 
    return view('user.dashboard',['links_data'=>$links]); 

}]); 

и website_link код модели

class Website_links extends Model 
{ 
    public $timestamps = false; 
    protected $table = 'website_links'; 

    public function project() 
    { 
     return $this->belongsTo('App\Website','website_id') 
        ->select('project_name','project_status'); 
    } 
} 

и просматривать код

@foreach($links_data as $links) 
     <tr> 
     <td><a href="">{{$links['page_url']}}</a></td> 
     <td>{{$links['project']}}</td>// here i want to display project_name from website table 
     </tr> 
    @endforeach 

Databse схема:

website : id,project_name,project_status 
    website_links: id, page_url, website_id //here website_id is forign key. 

теперь его шоу PAGE_URL правильно, но

{{$links['project']}} display {"project_name":"Project1","id":45} 

и я хочу, чтобы показать значение PROJECT_NAME как project1 вместо всего массива

{"project_name":"Project1","id":45} 
+0

Что вы получаете от var_dump ($ links) в вашем маршруте? – Drudge

+0

Проблема в том, что вы возвращаете ** объект ** с вашего маршрута и пытаетесь получить к нему доступ, как * массив *. Вместо '$ links ['page_url']' try' $ links-> page_url'. – Jeemusu

ответ

1

Chnage $ ссылки [ 'проект'] до $ ссылка-> project-> project_name

@foreach ($ links_data в $ ссылки) {{$ ссылки [ 'PAGE_URL']}} {{$ Ссылки-> project-> project_name}} // здесь я хочу, чтобы отобразить ИМЯ_ПРОЕКТА сайта таблице @endforeach

И изменить свой запрос на следующее, чтобы предотвратить проблему запроса N + 1

$ links = app \ Website_links :: with ('project') -> где ('website_id', 1) -> get();

+0

ОшибкаException в 1a1a8e95628b2f75f2f18eca4a89360de61acef6.php line 92: Попытка получить свойство не объекта –

+0

Извините, я пользуюсь своим телефоном, поэтому мне трудно вводить все в нужное место. Я обновил свой ответ. – oseintow

+0

проблем нет. Но я получаю такую ​​же проблему, пытаясь получить свойство не-объекта в поле зрения. Извините em new в laravel. –

Смежные вопросы