Я новичок в Laravel, я хочу присоединиться к таблице posts
и likes
, чтобы получать наиболее понравившиеся сообщения.
Что-то вроде ...
У идентификатора записи 1 есть 3 отметки «Нравится».
У идентификатора записи 2 есть 2 отметки.
У идентификатора записи 3 есть 1 отметка.
данные таблицы сообщений
данные таблицы лайков
модель поста
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public function likes()
{
return $this->hasMany(Like::class);
}
}
модель лайка
namespace App;
use Illuminate\Database\Eloquent\Model;
class Like extends Model
{
public $timestamps = false;
}
таблица сообщений
Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('category_id');
$table->unsignedBigInteger('admin_id')->nullable();
$table->string('title');
$table->string('slug')->unique();
$table->integer('views')->default(0);
$table->longText('content');
$table->text('meta_keywords')->nullable();
$table->text('meta_description')->nullable();
$table->enum('is_home', ['0', '1',])->default('1');
$table->enum('is_featured', ['0', '1',])->default('0');
$table->enum('is_slider', ['0', '1',])->default('0');
$table->integer('slider_order')->default(0);
$table->enum('type', ['Article', 'Video']);
$table->enum('status', ['Visible', 'Invisible', 'Draft', 'Pending']);
$table->foreign('category_id')->references('id')->on('categories');
$table->foreign('admin_id')->references('id')->on('admins');
$table->timestamps();
});
таблица лайков
Schema::create('likes', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('post_id');
$table->unsignedBigInteger('user_id')->nullable();
$table->unsignedBigInteger('admin_id')->nullable();
$table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('admin_id')->references('id')->on('admins')->onDelete('cascade');
});