Две модели связаны между собой hasMany
У модели Post есть много PostField
Posts:
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->integer('name');
$table->timestamps();
});
PostField:
Schema::create('post_fields', function (Blueprint $table) {
$table->increments('id');
$table->integer('post_id')->unsigned();
$table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
$table->string('name');
$table->string('value');
});
Как получить Post со всеми полями value и сортировать по ним?
по одному можно вот так (думаю что немного не правильно но работает)
Post::select('post.id', 'year.value' )
->join('post_fields as year', function ($join) {
$join->on('post.id', '=', 'year.post_id')->where('year.name', 'post_year');
})->where('year.value', 2014)
->count();
а как дополнить чтобы фильтровать по нескольким значениям?