无法获取当前登录用户的ID

时间:2016-07-15 17:16:56

标签: eloquent laravel-5.2

我有两个表:用户和帖子。我在这两个表之间建立了关系。当我尝试保存时,用户创建的帖子会发布到表格中。它不会传递用户的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

1 个答案:

答案 0 :(得分:0)

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

我从Auth :: id();

获取当前登录的用户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');

    }
}