как получить значение строки выбранного столбца в laravel - PullRequest
0 голосов
/ 27 января 2019

если я верну x, он покажет столбец franchise_id с его идентификатором, а если я верну переменную y, он ничего не покажет.

$x = Unit::select('franchise_id')->where('id', $id)->first();
$y = Franchise::select('case_number')->where('id', $x)->first();

return $x;

Я хотел бы обновить номер дела во франшизе, где идентификатор франшизы равенна единицу франшизы id

1 Ответ

0 голосов
/ 27 января 2019

Прежде всего, вы должны назвать свои переменные немного лучше.Во-вторых, $x в вашем случае будет экземпляром вашей Unit модели.

Вы можете получить доступ к franchise_id, используя $x->franchise_id.Наконец, вы можете использовать это для обновления вашей Franchise модели.

Вот пример (изменил имена переменных)

$unit = Unit::select('franchise_id')
    ->where('id', $id)
    ->first();

Franchise::where('id', $unit->franchise_id)
    ->update([
        'case_number' => 'xxx'
    ]);

Если вы просто хотите получить доступ к значению определенной строки в $unit, то будет работать и следующее:

$unit = Unit::find($id)->value('franchise_id'); 

Franchise::where('id', $unit)
    ->update([
        'case_number' => 'xxx'
    ]);

В качестве альтернативы подумайте об этом с помощью Eloquent Relationships .

Редактировать : Если вы хотите проверить, является ли $unitпусто или нет, вы можете просто сделать это:

$unit = Unit::select('franchise_id')
    ->where('id', $id)
    ->first();

// If there's no unit, it will return null
// which means, you can just do the following

if($unit) {
    Franchise::where('id', $unit->franchise_id)
        ->update([
            'case_number' => 'xxx'
        ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...