2016-08-02 71 views
0

我有一個問題 我想在一個頁面Laravel表關係Dynamodb

這裏來顯示所有的帖子是我dynamodb

用戶表:USER_ID |電子郵件|名稱|密碼

帖子表:id | body | user_id

user_id給我鏈接,所以一個用戶有很多帖子。

我只是簡單地使用驗證用戶::() - > USER_ID得到用戶的ID和請求主體,以創建一個新的後項

但如何的foreach以下?

名稱(從用戶):身體(從職位)

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 

錯誤時負載儀表板頁面

試圖獲得的非對象屬性(查看: 資源\意見\ dashboard.blade.php)

但它適用於$ post-> body 謝謝!

回答

0

其實在laravel表中應該有id作爲主鍵。

提到的關係是不正確的

郵政型號:

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

用戶模型

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

仍然有同樣的錯誤。這正確嗎?「{{$ post-> users-> first_name}}」。對於id作爲主鍵,我應該將用戶表屬性從user_id更改爲id嗎? –

+0

它應該像這樣{{$ post-> user-> first_name}}。它是用戶,而不是用戶 – Parithiban

+0

它改變爲「用戶」後出現另一個錯誤---在BelongsTo中出現'ErrorException。php line 50: 傳遞給Illuminate \ Database \ Eloquent \ Relations \ BelongsTo :: __ construct()的參數1必須是一個Illuminate \ Database \ Eloquent \ Builder的實例,在MyProject \ vendor中調用給定的BaoPham \ DynamoDb \ DynamoDbQueryBuilder實例\ Laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Model.php在第806行定義(View:MyProject \ resources \ views \ dashboard.blade.php)' –