【问题标题】:Create post with one category on eloquent laravel在 eloquent laravel 上创建一个类别的帖子
【发布时间】:2016-03-12 11:18:54
【问题描述】:

我想按用户创建一个类别的帖子,我的表

user
id_user

category
id_category

post
id_post
user_id
category_id

这是我的模型

//User.php
public function post()
{
    return $this->hasMany('App\Post');
}
//Post.php
public function user()
{
    return $this->belongsTo('App\User');
}
//Category.php
public function post()
{
    return $this->hasMany('App\Post');
}

还有Request

//CreatePostRequest.php
class CreatePostRequest extends Request {

public function authorize()
{
    return true;
}
public function rules()
{
    return [
        'title' => 'required:min',
        'description' => 'required',
        'category_list' => 'required'
    ];
}

}

我试过了

$post= Auth::user()->post()->create($request->all());

但出现错误“SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败(laravelproj.posts,CONSTRAINT posts_category_id_foreign FOREIGN KEY(category_id)参考categories (id_category) ON DELETE CASCADE) (SQL: insert into posts (title, description, user_id, updated_at, created_at) 值(可以买东西Lorem ipsum dolor坐) amet4, 2015-12-08 06:47:42, 2015-12-08 06:47:42, ?, ?))”。 如何解决这个问题?抱歉英语不好

【问题讨论】:

  • 抱歉,已更新

标签: php laravel laravel-5 eloquent


【解决方案1】:

您在创建 帖子 时收到此错误的原因是数据库中没有与您传递给 id_category 匹配的类别创建()

【讨论】:

  • 也存在相同类型的 int(10)
  • 这与不存在的列无关。这是您从 $request->all() 获得并传递给 create() 的 category_id 与类别表中现有的 id_category 不匹配。
  • 你能粘贴你从 $request->all() 得到的内容以及你得到的整个错误吗?
  • @jadrzej.kurylo 喜欢这样吗?
  • 您正在执行的查询是“插入帖子(标题、描述、user_id、updated_at、created_at)” - 您可以看到 category_id 缺失。
猜你喜欢
  • 2014-08-30
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 2015-04-19
  • 2020-06-09
相关资源
最近更新 更多