php 记录集在 Laravel @foreach 替代
php recordset in Laravel @foreach alternative
你能告诉我如何正确地做到这一点吗?
我正在使用 Laravel 8。将记录集传递到页面,我稍后会在页面中使用 foreach 循环处理该页面。如何在没有 forloop 的情况下从中获取数据?我用
避开了它
@foreach ($sites as $site)
<img src="{{$site->url}}" alt="Pic" id="bg-img" onclick = fill() />
@break
@endforeach
我使用了 foreach 循环,因为它稍后会在页面中运行。
是的,它有效,但我想知道正确的方法。
我也试过:
{{$site->url}}
{{$sites->url}}
$sites['url']
我是 Laravel 的新手,对 php 中的数组类型的东西很垃圾。
谢谢
我可以问这种改进类型的问题吗?
我刚刚解释了你的一些陈述。
例如,您有这样的数据:
----------------------------
| id | url |
----------------------------
| 1 | http://domain-1.tld |
| 2 | http://domain-2.tld |
| 3 | http://domain-3.tld |
| 4 | http://domain-4.tld |
| 5 | http://domain-5.tld |
----------------------------
例如,您有查询:
$sites = Site::get();
get
方法 returns 包含查询结果的 Illuminate\Support\Collection
实例,其中每个结果都是 PHP stdClass
对象的实例。您可以通过将列作为对象的 属性 进行访问来访问每一列的值:
@foreach ($sites as $site)
{{ $site->url }}
@endforeach
如果用$sites->url
会报错,因为没有对象:
Property [url] does not exist on this collection instance.
如果用$sites['url']
也会报错
集合转数组时可以使用$site['url']
:
$sites = Site::get()->toArray();
@break
当你使用break
时,会结束当前for
、foreach
、while
、do-while
或switch
的执行结构。
根据您的代码,它只需要第一次迭代。
@foreach ($sites as $site)
@break // stop
@endforeach
How do I get data out of it without a forloop?
您似乎想要检索单行。您可以使用 first()
:
$site = Site::first();
$site->url;
如果你想打印 array.then 的所有值,没有循环是没有办法的。如果你想打印单个 value.it 只能在 index/key 中打印。
例如。
//打印所有值
$array = ['car','bike','truck'];
foreach($array as $value)
回声$值;
endforeach
//这个打印单值
回显 $值[0];
你能告诉我如何正确地做到这一点吗?
我正在使用 Laravel 8。将记录集传递到页面,我稍后会在页面中使用 foreach 循环处理该页面。如何在没有 forloop 的情况下从中获取数据?我用
避开了它@foreach ($sites as $site)
<img src="{{$site->url}}" alt="Pic" id="bg-img" onclick = fill() />
@break
@endforeach
我使用了 foreach 循环,因为它稍后会在页面中运行。
是的,它有效,但我想知道正确的方法。
我也试过:
{{$site->url}}
{{$sites->url}}
$sites['url']
我是 Laravel 的新手,对 php 中的数组类型的东西很垃圾。
谢谢
我可以问这种改进类型的问题吗?
我刚刚解释了你的一些陈述。
例如,您有这样的数据:
----------------------------
| id | url |
----------------------------
| 1 | http://domain-1.tld |
| 2 | http://domain-2.tld |
| 3 | http://domain-3.tld |
| 4 | http://domain-4.tld |
| 5 | http://domain-5.tld |
----------------------------
例如,您有查询:
$sites = Site::get();
get
方法 returns 包含查询结果的 Illuminate\Support\Collection
实例,其中每个结果都是 PHP stdClass
对象的实例。您可以通过将列作为对象的 属性 进行访问来访问每一列的值:
@foreach ($sites as $site)
{{ $site->url }}
@endforeach
如果用
$sites->url
会报错,因为没有对象:Property [url] does not exist on this collection instance.
如果用
$sites['url']
也会报错集合转数组时可以使用
$site['url']
:$sites = Site::get()->toArray();
@break
当你使用break
时,会结束当前for
、foreach
、while
、do-while
或switch
的执行结构。
根据您的代码,它只需要第一次迭代。
@foreach ($sites as $site)
@break // stop
@endforeach
How do I get data out of it without a forloop?
您似乎想要检索单行。您可以使用 first()
:
$site = Site::first();
$site->url;
如果你想打印 array.then 的所有值,没有循环是没有办法的。如果你想打印单个 value.it 只能在 index/key 中打印。
例如。 //打印所有值 $array = ['car','bike','truck'];
foreach($array as $value) 回声$值; endforeach
//这个打印单值 回显 $值[0];