Я пытаюсь создать функционал для поста в блоге, который предполагается добавить с помощью фронтального приложения, основанного на реакции, и моего API, который построен на Laravel (5.6),
Я пробовал несколько вещей, но, к сожалению, я не могу понять, как я могу прикрепить несколько категорий блогов к одному сообщению
BlogPostAPIController.php
public function store(Request $request)
{
$BlogPosts = new BlogPosts;
$BlogPosts->tutor_id = $request->user()->tutor->id;
$BlogPosts->title = $request->title;
$BlogPosts->BlogCategories = $request->BlogCategories; /* Unknown column*/
$BlogPosts->slug = str_slug($request->title);
$BlogPosts->short_description = $request->short_description;
$BlogPosts->post_content = json_encode($request->post_content);
$BlogPosts->featured_image = $request->featured_image;
$BlogPosts->status = $request->status;
$BlogPosts->BlogCategories()->attach($request->blog_categories_id);
$BlogPosts->save();
return $BlogPosts::create($request->all());
}
BlogPostsModel.php
class BlogPosts extends Model{
public $table = 'blog_posts';
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
protected $dates = ['deleted_at'];
public $fillable = [
'tutor_id',
'title',
'slug',
'short_description',
'post_content',
'featured_image',
'status'
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'id' => 'integer',
'tutor_id' => 'integer',
'title' => 'string',
'slug' => 'string',
'short_description' => 'string',
'post_content' => 'string',
'featured_image' => 'string',
'status' => 'string'
];
/**
* Validation rules
*
* @var array
*/
public static $rules = [
];
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
**/
public function tutor()
{
return $this->belongsTo(\App\Models\Tutor::class);
}
public function BlogCategories(){
return $this->belongsToMany(BlogCategories::class);
}
// Category.php
public function BlogPosts(){
return $this->hasMany(BlogPosts::class);
}
}
BlogCategoryBlogPost.php
Schema::create('blog_categories_blog_posts', function(Blueprint $table) {
$table->integer('blog_categories_id')->unsigned();
$table->integer('blog_posts_id')->unsigned();
$table->foreign('blog_categories_id')->references('id')->on('blog_categories')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('blog_posts_id')->references('id')->on('blog_posts')->onUpdate('cascade')->onDelete('cascade');
});
Ответ API
Пожалуйста, найдите скриншот для ответа API