За последние 24 часа нас посетил 22571 программист и 1141 робот. Сейчас ищут 816 программистов ...

Как выбрать картинку одной новости

Тема в разделе "Laravel", создана пользователем Konstant1n, 17 сен 2019.

Метки:
  1. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Всем привет. Вот мои миграции news и images.
    Код (Text):
    1. Schema::create('news', function (Blueprint $table) {
    2.             $table->increments('id');
    3.             $table->string('title');
    4.             $table->integer('s_img_id')->unsigned()->index()->nullable();
    5.             $table->integer('f_img_id')->unsigned()->index()->nullable();
    6.             $table->foreign('s_img_id')->references('id')->on('images');
    7.             $table->foreign('f_img_id')->references('id')->on('images');
    8.             $table->timestamps();
    9.         });
    Код (Text):
    1. Schema::create('images', function (Blueprint $table) {
    2.             $table->increments('id');
    3.             $table->string('title');
    4.             $table->timestamps();
    5.         });
    Как выбрать картинку новости?

    в модели news описал метод image:
    Код (Text):
    1. public function image()
    2.     {
    3.         return $this->hasOne('App\Image');
    4.     }
    Ошибка:
    Код (Text):
    1. Illuminate/Database/QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'images.s_img_id' in 'where clause' (SQL: select * from `images` where `images`.`s_img_id` = 1 and `images`.`s_img_id` is not null limit 1)'
     
  2. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    иди еще доку почитай на предмет какие параметры можно указывать в методе hasOne, если названия полей не совпадают с теми, которые сопостовляются по умолчанию
     
  3. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    оказывается все работало. надо было перезапустить терминал в PhpStorm и соответственно tinker
     
  4. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Терминал незачем перезапускать. Вот тинкер надо, потому что если консольный скрипт один раз подгрузил файл с классом, он его не будет перечитывать заново.