Я работаю над проектом Laravel и хочу создать REST API для веб-сайта. В моей системе у меня есть две таблицы:
Блоги и Категории. В блогах таблицы есть столбец category_id, который является ключом, который ссылается на идентификатор столбца в таблице категорий.
Блоги Миграция
class CreateBlogsTable extends Migration
{
public function up()
{
Schema::create('blogs', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->longtext('body');
$table->string('category_id');
$table->timestamps();
});
}
.....
}
Категории Миграция
class CreateCategoriesTable extends Migration
{
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
....
}
Мои блоги Модель
class Blog extends Model
{
protected $fillable = ['title', 'body', 'category_id'];
public function category() {
return $this->hasMany('app\Category');
}
}
Мои блоги Модель
class Category extends Model
{
protected $fillable = ['name'];
public function blog() {
return $this->hasMany('app\Blog');
}
}
Итак, я создал BlogController и настроил маршруты для доступа к соответствующей функции API.
API / blogs / via GET для функции индекса моего контроллера, и эта функция выглядит следующим образом:
public function index()
{
$blog = Blog::all();
return response()->json($blog, 200);
}
С этим я могу получить данные из таблицы блогов
[
{
"id": 1,
"title": "title from my blog",
"text": "text body here",
"category_id": "2",
"created_at": "2018-09-05 21:08:21",
"updated_at": "2018-09-05 21:08:21"
}
]
но я хотел бы объединить таблицу блогов и категорий и получить аналогичный ответ на этот
[
{
"id": 1,
"title": "title from my blog",
"text": "text body here",
"category_id": "2",
"created_at": "2018-09-05 21:08:21",
"updated_at": "2018-09-05 21:08:21"
"category": [{
"id": 2,
"name": "Development"
}]
}
]
кому помочь?