Не могу получить пользователя по идентификатору в Laravel 5.5 - PullRequest
0 голосов
/ 15 апреля 2020

Я не знаю, что я делаю неправильно, но я предполагаю, что это что-то прямо у меня под носом.

Я пытаюсь извлечь несколько строк из базы данных по их идентификатору, вычитая число из оригинала запрос выглядит так:

$week4 = DB::table('weekly_territory_data')->where([['area_id', '=', $area_id], ['start_date', '=', $startDate]])->first();

Log::info(print_r($week4, true));

$selectedWeekId = $week4->id;
$selectedWeekIdSub2 = $selectedWeekId - 236;
$selectedWeekIdSub3 = $selectedWeekId - 472;
$selectedWeekIdSub4 = $selectedWeekId - 708;

Log::info($selectedWeekIdSub4);

$week1 = DB::table('weekly_territory_data')->where('id', '=', $selectedWeekIdSub4)->first();

Log::info(print_r($week1,true));

Я знаю, что получаю правильные идентификационные номера, но я не могу получить строки, используя код, который у меня есть. Что здесь происходит? Есть ли какая-то проблема в конкретном случае?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Проблема была в типизации.

Я пытался получить набор данных с идентификатором, рассматривая его как целое число ... но мой столбец идентификатора - строка по какой-то глупой причине.

    $selectedWeekId = $week4->id;

    $week3id = $selectedWeekId - 236;
    $week3string = (string) $week3id;
    $week3 = WeeklyTerritoryData::where('id', '=', $week3string)->get();

    Log::info('week3 to follow');
    Log::info($week3);
    $week2id = $selectedWeekId - 472;
    $week2string = (string) $week2id;
    $week2 = WeeklyTerritoryData::where('id', '=', $week2string)->get();

    Log::info('week2 to follow');
    Log::info($week2);

    $week1id = $selectedWeekId - 708;
    $week1string = (string) $week1id;
    $week1 = WeeklyTerritoryData::where('id', '=', $week1string)->get();
0 голосов
/ 15 апреля 2020

Я настоятельно рекомендую использовать Eloquent . Если вы создали модель WeeklyTerritoryData, ваш запрос должен выглядеть следующим образом:

$week1 = WeeklyTerritoryData::find($selectedWeekIdSub4)->first();

или

$week1 = WeeklyTerritoryData::where('id',$selectedWeekIdSub4)->first();

это вернет Collection , затем вы можете получить доступ к id или любому другому полю, например:

$week1->id

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