2017-09-03 13 views
0

私は2つのテーブルを持っており、それらからデータを取り出してテーブルに渡したいと思います。Laravel 5.4の複数のテーブルからデータを取り出す方法

[住所]

class Adress extends Model 
{  
    public function KontoKorrent() 
    { 
     return $this->hasOne(KontoKorrent::class, 'Adresse'); 
    } 
} 

[KontoKorrent]このような

class KontoKorrent extends Model 
{ 
    public function Adresse() 
    { 
     return $this->belongsTo(Adress::class,'Adresse'); 
    } 
} 

私のコントローラの外観:

私は1対1の関係で2つのモデルを作成しました。このため

class AdressesController extends Controller 
{ 
    public function index() 
    { 
    $adresses = Adress::with('KontoKorrent')->paginate(2); 
     return view('welcome', compact('adresses')); 

    } 
} 

使用する場合tinker App \ Adress :: すべてadresskontokorrentとの関係にあります。これは機能しています。

私の見解では
App\Adress {#698 
     Adresse: "3030", 
     Anrede: "Company", 
     Name1: "A Company Name", 
     LieferStrasse: "Dummystreet", 
     KontoKorrent: App\KontoKorrent {#704 
      Location: "1", 
      Adresse: "3030", 
      Kto: "S0043722", 

<ul> 
    @foreach($adresses as $adress) 
    <li>{{ $adress->Name1 }}</li> //this is working 
    <li>{{ $adress->KontoKorrent->Kto }}</li> //this is NOT working 
    @endforeach 
</ul> 

{{ $adresses->links() }} 

関係は私にエラーを示している。

Trying to get property of non-object

私が間違ってやっていますか?

答えて

0

あなたが取得しているエラー:

Trying to get property of non-object

一部Adressモデルに関連して、その後KontoKorrent、あなたの$adress->KontoKorrent戻りnullを持っていない、とヌルは、対象とならないんの理由はメッセージ。 PHP> = 7.0

{{ $adress->KontoKorrent ? $adress->KontoKorrent : 'the else content' }} 

かで、あなたがすることができます

<ul> 
    @foreach($adresses as $adress) 
    <li>{{ $adress->Name1 }}</li> //this is working 
    <li> 
     @if($adress->KontoKorrent) 
      {{ $adress->KontoKorrent->Kto }} 
     @else 
      <!-- Put something here if you want, otherwise remove the @else --> 
     @endif 
    </li> //this is NOT working 
    @endforeach 
</ul> 

これはに短縮することができます。adressは関係を持っている場合

それを修正するには、チェックするifを行う必要がありますnull coalesce演算子を使用してください。

{{ $adress->KontoKorrent ?? 'the else content' }} 
+1

実際には、いくつかのヌルエントリがあります。ありがとう、これは私の問題を解決した –

関連する問題