Я получаю сообщение об ошибке: (SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец 'users.post_id' в 'выражении where' (SQL: выберите * из users
, где users
. post_id
= 1 и users
. post_id
не равно нулю).
Я пытаюсь просмотреть страницу сообщения, содержащего две кнопки «Нравится» и «Не нравится»:
--> миграция таблицы любит:
public function up()
{
Schema::create('likes', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('post_id');
$table->boolean('like');
$table->timestamps();
});
}
----> миграция пользователей таблицы:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
--------------------> Модель моего пользователя:
class User extends Authenticatable
{
use Notifiable;
public function likes() {
return $this->hasMany(User::class);
}
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
--------------> Модель моего сообщения:
class Post extends Model
{
public $table="posts";
public function comments() {
return $this->hasMany(Comment::class)->orderBy('created_at');
}
public function likes() {
return $this->hasMany(User::class);
}
}
-----------> Модель «Мне нравится»:
class Like extends Model
{
public function post() {
return $this->belongsTo(Post::class);
}
public function user() {
return $this->belongsTo(User::class);
}
------------- и модель моего комментария:
class Comment extends Model
{
protected $fillable = [
'username', 'body', 'post_id'
];
public function post() {
return $this->belongsTo(Post::Class);
}
}
----> Часть кода, которую я вызываю для переменных в блейде Post.blade.php:
@php
$like_count = 0;
$dislike_count = 0;
@endphp
@foreach ($post->likes as $like)
@php
if($like->like == 1)
{
$like_count++;
}
if($like->like == 0)
{
$dislike_count++;
}
@endphp
@endforeach
<button type="button" class="btn btn-success">Like <i class="fa fa-
thumbs-up"></i><b> {{ $like_count }} </b>
</button>
<button type="button" class="btn btn-danger">Dislike <i class="fa fa-
thumbs-down"></i> <b> {{ $dislike_count }} </b>
</button>
Я вставил несколько случайных чисел в таблицулюбит вручную в соответствии с user.id и post.id, и я перешел как = 1