Laravel Явная проблема привязки модели маршрута в RouteServiceProvider - PullRequest
0 голосов
/ 04 июля 2018

Я использую Явная привязка модели маршрута для Модуль ползунка в моем приложении Laravel ( 5.6 версия). Теперь я сталкиваюсь с проблемой, когда пытаюсь соединить таблицу ползунков с таблицей file_uploads.

RouteServiceProvider

$this->bind('slider', function ($value) {
    $slider = new Slider;

    return Slider::withTrashed()
                  ->leftjoin('file_uploads','file_uploads.file_code', '=', 'sliders.file_code')
                  ->where('sliders.id', $value)->first();
});

это код, который я использую. Оба ползунка и file_uploads имеют столбец ID . И на странице редактирования слайдера я получаю идентификатор из таблицы file_uploads. Мой предполагаемый идентификатор будет из таблицы sliders.

Я очень ценю любую помощь, которую вы можете оказать.

1 Ответ

0 голосов
/ 04 июля 2018

Если бы вы использовали Eloquent Relationship , это могло бы спасти вас, если одно свойство id из таблицы перекрывало другое из-за joins.

Но для использования Joins вы можете получить нужный идентификатор как другое свойство, используя select() (см. Выбирает ) или передавая параметры массива в first() метод, поэтому ваш код становится:

return Slider::withTrashed()
              ->leftjoin('file_uploads','file_uploads.file_code', '=', 'sliders.file_code')
              ->where('sliders.id', $value)
              ->first(['*', 'sliders.id as sliders_id']);

Или:

return Slider::withTrashed()
              ->leftjoin('file_uploads','file_uploads.file_code', '=', 'sliders.file_code')
              ->where('sliders.id', $value)
              ->select('*', 'sliders.id as sliders_id')
              ->first();

В любом случае оператор выбора передается как запрос, а значение id возвращается как sliders_id, и вы можете использовать его там, где вам нужно вместо id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...