2016-07-15 131 views
0

我有两个表格:用户和帖子。我在这两个表格之间建立了联系。当我尝试保存时,由用户创建的帖子发布到表格。它不会传递用户的ID。请检查下面的代码:无法获取当前登录用户的ID

用户模型(应用程序\ 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'); 
    } 
} 

邮政模型(应用程序\ 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

我找到了解决办法。所以,我会发布我的问题的答案。

我从Auth :: id()获取当前登录的user'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

其实,我忘了补充雄辩关系之前的回报。这就是为什么我不能拔出或保存当前登录的user'id。 –