2016-08-02 12 views
0

Ich habe eine Frage Ich möchte auf einer Seite alle Beiträge anzuzeigenLaravel Tabelle Beziehung DynamoDB

Hier ist meine DynamoDB

Benutzer Tabelle: user_id | E-Mail | Name | Passwort

Beiträge Tabelle: ID | Körper | user_id

user_id für mich zu verknüpfen, so hat ein Benutzer viele Beiträge.

ich einfach nur Auth verwenden :: Benutzer() -> user_id Benutzer-ID und fordern Körper bekommen einen neuen Beitrag Artikel

aber wie zu schaffen die folgenden foreach?

Namen (von den Benutzern): Körper (von Pfosten)

post.php

class Post extends \BaoPham\DynamoDb\DynamoDbModel 
{ 
    public function user() 
    { 
     return $this->belongsTo('App\User'); 
    } 
    protected $table = 'posts'; 
    protected $fillable = array('id'); 
} 

User.php

class User extends \BaoPham\DynamoDb\DynamoDbModel implements Authenticatable 
{ 
    use \Illuminate\Auth\Authenticatable;  
    public function posts() 
    {  
     return $this->hasMany('App\Post'); 
    }  
    protected $table = 'users'; 
    protected $fillable = array('email'); 
    protected $primaryKey = 'user_id'; 
} 

PostController.php

class PostController extends Controller 
    { 
     public function getDashboard() 
     { 
      $posts = Post::all();   
      return view('dashboard', ['posts' => $posts]); 
     } 

dashboard.blade.php

@foreach($posts as $post)    
       <p>{{ $post->body }}</p> 
        by {{ $post->users->name}}     

     @endforeach 

Fehler bei der Last Dashboardseite

zu bekommen Eigenschaft Nicht-Objekt Der Versuch (Ansicht: resources \ Ansichten \ dashboard.blade.php)

aber es funktioniert mit nur $ post-> body Danke!

Antwort

0

Eigentlich in Laravel Tabelle sollte ID als Primärschlüssel haben.

Die Beziehung erwähnt ist nicht korrekt

Beitrag Modell:

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

Benutzermodell

public function posts() 
{  
    return $this->hasMany('App\Post','user_id','user_id'); 
} 
+0

noch den gleichen Fehler haben. Das ist richtig? "{{$ Post-> users-> first_name}}". Für die ID als Primärschlüssel, sollte ich das Benutzer-Tabellenattribut von user_id zu id ändern? –

+0

Es sollte so sein {{$ post-> user-> first_name}}. es ist Benutzer und nicht Benutzer – Parithiban

+0

es hat einen anderen Fehler nach dem Wechsel zu "Benutzer" --- 'ErrorException in BelongsTo.php Zeile 50: Argument 1, das an Illuminate \ Database \ Eloquent \ Relationen \ BelongsTo :: __ construct() übergeben wurde, muss eine Instanz von Illuminate \ Database \ Eloquent \ Builder sein, Instanz von BaoPham \ DynamoDb \ DynamoDbQueryBuilder angegeben, in MyProject \ vendor aufgerufen \ laravel \ framework \ src \ Illuminate \ Datenbank \ Eloquent \ Model.php in Zeile 806 und definiert (View: MyProject \ resources \ views \ dashboard.blade.php) ' –