如何将原始查询结果从控制器传递给视图?
How to pass Raw query result from controller to view?
我需要从数据库中生成一个数字,并在查看输入时显示它。
我在 MySQL 上使用函数来实现,所以我使用原始表达式。
$nomor = DB::table('customers')-
>selectRaw('concat(year(now()),lpad(month(now()),2,0),lpad(id, 3, 0))
as nomor')
->where('id', '=', $customers->id)->get();
当我将变量传递到视图中时,
<input type="text" class="form-control @error('nomor') is-invalid @enderror" id="nomor" placeholder="" name="nomor" value="{{ $nomor }}">
当前结果:
"[{"nomor":"201909001"}]"
我的预期结果是:
201909001 withoutquote
当您调用 get()
函数时,函数 returns 一个包含所有查询结果的数组。
例如,如果您的 select returns 3 行,则 $nomor
returns 具有 3 个位置的集合(类似于类固醇数组),每行一个由查询返回,在每个位置,get()
函数 returns 一个对象,其属性与您的 select 相同,因此,在这种情况下,访问 [=14] 的正确方法=] 列是:
<input type="text" class="form-control @error('nomor') is-invalid @enderror" id="nomor" placeholder="" name="nomor" value="{{ $nomor[0]->nomor }}">
注意,我们只调用 $nomor
对象,而是访问结果的第一行 $nomor[0]
并获取与查询的列名对应的 属性 $nomor[0]->nomor
当您使用 ->get()
时,您会得到一个 Collection
,它本质上是一个具有附加功能的数组。当您使用 {{ $nomor }}
时,您将输出 Collection
的全部内容。要解决此问题,请使用 ->first()
:
$nomor = DB::table('customers')
->selectRaw('concat(year(now()),lpad(month(now()),2,0),lpad(id, 3, 0)) as nomor')
->where('id', '=', $customers->id)
->first();
然后在您看来,将其作为 object
访问(因为 DB::table()->first()
将 return 访问 stdClass
):
<input type="text" ... value="{{ $nomor->nomor }}"/>
我需要从数据库中生成一个数字,并在查看输入时显示它。
我在 MySQL 上使用函数来实现,所以我使用原始表达式。
$nomor = DB::table('customers')-
>selectRaw('concat(year(now()),lpad(month(now()),2,0),lpad(id, 3, 0))
as nomor')
->where('id', '=', $customers->id)->get();
当我将变量传递到视图中时,
<input type="text" class="form-control @error('nomor') is-invalid @enderror" id="nomor" placeholder="" name="nomor" value="{{ $nomor }}">
当前结果:
"[{"nomor":"201909001"}]"
我的预期结果是:
201909001 withoutquote
当您调用 get()
函数时,函数 returns 一个包含所有查询结果的数组。
例如,如果您的 select returns 3 行,则 $nomor
returns 具有 3 个位置的集合(类似于类固醇数组),每行一个由查询返回,在每个位置,get()
函数 returns 一个对象,其属性与您的 select 相同,因此,在这种情况下,访问 [=14] 的正确方法=] 列是:
<input type="text" class="form-control @error('nomor') is-invalid @enderror" id="nomor" placeholder="" name="nomor" value="{{ $nomor[0]->nomor }}">
注意,我们只调用 $nomor
对象,而是访问结果的第一行 $nomor[0]
并获取与查询的列名对应的 属性 $nomor[0]->nomor
当您使用 ->get()
时,您会得到一个 Collection
,它本质上是一个具有附加功能的数组。当您使用 {{ $nomor }}
时,您将输出 Collection
的全部内容。要解决此问题,请使用 ->first()
:
$nomor = DB::table('customers')
->selectRaw('concat(year(now()),lpad(month(now()),2,0),lpad(id, 3, 0)) as nomor')
->where('id', '=', $customers->id)
->first();
然后在您看来,将其作为 object
访问(因为 DB::table()->first()
将 return 访问 stdClass
):
<input type="text" ... value="{{ $nomor->nomor }}"/>