За последние 24 часа нас посетили 21690 программистов и 1019 роботов. Сейчас ищут 706 программистов ...

Unknown column 'users.comment_id'

Тема в разделе "Laravel", создана пользователем Сереганек, 15 сен 2017.

  1. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    При попытке вытащить из связанных таблиц данные, получаю ошибку:
    Код (Text):
    1.  
    2. (3/3) QueryException
    3. SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.comment_id' in 'where clause' (SQL: select * from `users` where `users`.`comment_id` in (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23))
    4. in Connection.php (line 664)
    Связь один-к-одному.
    Я понимаю, что где-то идет обращение к несуществующему столбцу. Подскажите, где это может быть. Дело в том, что такой столбец у меня действительно был раньше, но позже я его удалил из миграций и сидеров. А также удалил все свои таблицы из БД и перезапустил все миграции ( migrate:fresh). Поиск по проекту не находит в коде "comment_id". Его также не вижу в сидерах, моделях, таблицах mysql, контроллере. Что это может быть? Могло ли это как-то закешироваться?
    --- Добавлено ---
    Модель Comment
    PHP:
    1. class Comment extends Model
    2. {
    3.     //
    4.     public function user(){
    5.         return $this->hasOne('App\User');
    6.     }
    7. }
    Миграция для юзеров
    PHP:
    1. class CreateUsersTable extends Migration
    2. {
    3.     /**
    4.      * Run the migrations.
    5.      *
    6.      * @return void
    7.      */
    8.     public function up()
    9.     {
    10.         Schema::create('users', function (Blueprint $table) {
    11.             $table->increments('id');
    12.             $table->string('name');
    13.             $table->string('email')->unique();
    14.             $table->string('password');
    15.             $table->string('img_name');
    16.             $table->rememberToken();
    17.             $table->timestamps();
    18.         });
    19.     }
    Миграция для комментов
    PHP:
    1. class CreateCommentsTable extends Migration
    2. {
    3.     /**
    4.      * Run the migrations.
    5.      *
    6.      * @return void
    7.      */
    8.     public function up()
    9.     {
    10.         Schema::create('comments', function (Blueprint $table) {
    11.             $table->increments('id');
    12.             $table->text('comment');
    13.             $table->integer('user_id')->unsigned();
    14.             $table->foreign('user_id')->references('id')->on('users');
    15.             $table->integer('like');
    16.             $table->integer('unlike');
    17.             $table->integer('parent_comment_id');
    18.             $table->timestamps();
    19.         });
    20.     }
    --- Добавлено ---
    Фрагмент сидера на таблицу комментов
    PHP:
    1.         for ($i=0; $i<22; $i++){
    2.             DB::table('comments')->insert([
    3.                 'comment' => $faker->paragraph(8, true),
    4.                 'user_id' => $faker->numberBetween(1,20),
    5.                 'like' => $faker->numberBetween(0,9999),
    6.                 'unlike' => $faker->numberBetween(0,9999),
    7.                 'parent_comment_id' => $parents[$i],
    8.                 'created_at' => Carbon::now(),
    9.                 'updated_at' => Carbon::now()
    10.             ]);
    11.         }
    Фрагмент сидера на таблицу юзеров
    PHP:
    1. for ($i=0; $i<20; $i++){
    2.             DB::table('users')->insert([
    3.                 'name' => $faker->firstName('male'|'female') . " " . $faker->lastName,
    4.                 'email' => $faker->email,
    5.                 'password' => $faker->password,
    6.                 'img_name' => $faker->image('public/img/avatar/', 64, 64, '', false),
    7.                 'created_at' => Carbon::now(),
    8.                 'updated_at' => Carbon::now()
    9.             ]);
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Здесь не hasOne, здесь belongsTo
     
    Сереганек нравится это.
  3. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Круто! Все заработало. Пока еще не понял почему именно обратное отношение, но скоро разберусь. Спасибо!
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Если бы у users был coments_id, было бы hasOne, а тут у comments user_id, поэтому belongsTo
     
    MouseZver нравится это.