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