如何获取 laravel 中所选列的行值

how to get row value of selected column in laravel

如果我 return x 它将显示一个带有它的 id 的 franchise_id 列,如果我 return 变量 y 它什么也不会显示。

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

return $x;

我想更新特许经营 ID 等于单位特许经营 ID 的特许经营案例编号

首先,你应该更好地命名你的变量。其次,$x 在您的案例中将是您的 Unit 模型的一个实例。

然后您可以使用 $x->franchise_id 访问 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'
        ]);
}