如何在laravel中获取选定列的行值

时间:2019-01-27 09:18:16

标签: laravel laravel-5.6

如果我返回x,它将显示带有其id的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 :(得分:0)

首先,您应该为变量命名更好一些。其次,您的情况下的$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'
        ]);
}