Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将原始查询结果从控制器传递到视图?_Php_Laravel_Laravel Query Builder_Laravel Views - Fatal编程技术网

Php 如何将原始查询结果从控制器传递到视图?

Php 如何将原始查询结果从控制器传递到视图?,php,laravel,laravel-query-builder,laravel-views,Php,Laravel,Laravel Query Builder,Laravel Views,我需要从数据库中生成一个数字,并在视图的输入中显示它 我使用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(); 当我将变

我需要从数据库中生成一个数字,并在视图的输入中显示它

我使用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 }}">

当前结果:

“[{“名称”:“201909001”}”

我的预期结果是:

201909001无报价

调用
get()
函数时,该函数返回一个包含所有查询结果的数组

例如,如果select返回3行,
$nomor
返回一个集合(如带类固醇的数组),集合有3个位置,查询返回的每行一个位置,
get()
函数在每个位置返回一个对象,其属性为select,因此,在本例中,访问
nomor
列的正确方法是:

<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()
时,您会得到一个
集合
,它本质上是一个具有附加功能的阵列。使用
{{$nomor}}
时,输出的是
集合的全部内容。要解决此问题,请使用
->first()

然后在您的视图中,作为
对象访问它(因为
DB::table()->first()
将返回一个
stdClass
):


我试过$nomor->nomor和$nomor[0]['nomor']。谢谢威廉的回答。我一到家就试试。
$nomor = DB::table('customers')
->selectRaw('concat(year(now()),lpad(month(now()),2,0),lpad(id, 3, 0)) as nomor')
->where('id', '=', $customers->id)
->first();
<input type="text" ... value="{{ $nomor->nomor }}"/>