2016-07-15 8 views
0

ユーザーと投稿の2つのテーブルがあります。私はこれら2つのテーブルの間に関係を作りました。保存しようとすると、ユーザーが作成した投稿が表に投稿されます。それはユーザーのIDを渡しません。 (現在ログインしているユーザーのIDを取得できません

ユーザーモデル(APP \ User.php)

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use Illuminate\Contracts\Auth\Authenticatable; 
class User extends Model implements Authenticatable 
{ 
    use \Illuminate\Auth\Authenticatable; 

    public function posts() 
    { 
     $this->hasMany('App\Post'); 
    } 
} 

ポストモデル(APP \ Post.php)

<?php 

    namespace App; 

    use Illuminate\Database\Eloquent\Model; 

    class Post extends Model 
    { 
     public function user() 
     { 
      $this->belongsTo('App\User'); 
     } 
    } 

郵便コントローラ:以下のコードをご確認くださいApp \ Http \ Controllers \ PostController.php)

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Post; 
class PostController extends Controller 
{ 
    public function postCreatePost(Request $request) 
    { 
     //validation here will come 

     $post = new Post(); 
     $post->body = $request['body']; 
     $request->user()->posts()->save(); 
     return redirect()->route('dashboard'); 

    } 
} 

エラー

Error

答えて

0

私は解決策を見つけました。だから、私は私の質問の答えを掲示します。

現在ログインしているuser'idをAuth :: id()から取得します。

は、だから私は

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Post; 
class PostController extends Controller 
{ 
    public function postCreatePost(Request $request) 
    { 
     //validation here will come 

     $post = new Post(); 
     $post->body = $request['body']; 
     $post->user_id = \Auth::id(); 
     $post->save(); 
     return redirect()->route('dashboard'); 

    } 
} 
+0

以下のように私のコードを変更したり、 '$要求 - >ユーザー() - > posts->保存($ポスト)' – felipsmartins

+0

は実際に、私は説得力の関係の前にリターンを追加するのを忘れ。なぜ私は現在のログインユーザーIDで引っ張ったり保存したりできないのですか? –

関連する問題