2017-01-26 16 views
0

私はテーブルuserとユーザdetailsの2つを持っています。どちらが1対1の関係にありますか。関係からデータを取得してもコレクションエラーが発生する

そしてuser_detailsテーブルにのみ、ユーザーテーブル(名前、電子メール、パスワード)、アドレス、および年齢のすべてのデータを表示したいとします。私は雄弁の関係は、このような

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class User extends Model 
{ 
    protected $table ='users'; 

    protected $fillable = ['user_name', 'email', 'password']; 

    public function userdetails(){ 
     return $this->hasOne('App\UserDetail','user_id'); 
    } 

} 

として行われてきたとき、私はそれをどのように行うことができますUserDetail.php

<?php 

    namespace App; 

    use Illuminate\Database\Eloquent\Model; 

    class UserDetail extends Model 
    { 
     protected $table ='user_details'; 

     protected $fillable = ['user_id', 'full name', 'address', 'age']; 

     public function users(){ 
      return $this->belongsTo('App\User'); 
     } 

    } 

たぶん私は彼らがforeachのを使用して私の見解とループに渡すことができますか?

{{$user->user_details->address}} 
+0

あなたが欲しいもの:だから私はuserdetailsに

コントローラを使用して照会します。つまり、ユーザーテーブルのデータを取得して、フルネーム、アドレス、年齢、電子メール、ユーザー名を場所に表示したいのですか? – Vikash

+0

はい、私はすべてを一列に表示したいと思います。多分私はちょうど{{$ user-> user_details-> address}} – d3cypher

+0

しかし、私はそれからエラーを取得しています。 – d3cypher

答えて

0

は、コントローラ機能では、あなたがeager loadingを使用することができますビュー内の変数と、あなたのビューで、あなたのビューで、このユーザーは、この

@foreach($users as $user) 
    {{ $user->user_name }} 
    {{ $user->email }} 
    {{ $user->userdetails->full_name }} 
    {{ $user->userdetails->address }} 
    {{ $user->userdetails->age }} 
@endforeach 
+0

このエラーtho:非オブジェクトのプロパティを取得しようとしています – d3cypher

+0

データを正しく表示していますか。私の場合は、コントローラの機能の中でこのようなデータを渡すことができます。ビューを戻す( 'your_view'、compact( 'users')); – Vikash

+0

あなたの答えを見つけてみましょう。ありがとうございます – d3cypher

0

を試してみてください。この

$users = User::with('userdetails')->get(); 

パスのようなユーザーを取得することができますデータを読み込む:

$users = User::with('userdetails')->get(); 
その後、

とそれにアクセス:

{{ empty($user->userdetails) ? 'No address attached to this user' : $user->userdetails->address }} 
-1

は、私はちょうど、関連テーブルに照会し、あなたにみんなありがとう。

user_detail = UserDetail::with('user')->get(); 
関連する問題