加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

laravel view怎么显示controller中传递的对象值的方法

发布时间:2020-12-14 19:58:05 所属栏目:大数据 来源:网络整理
导读:请教 laravel view 怎么显示 controller 中传递的对象值,开发中遇到的问题,求解答! Controller 代码: publicfunctionshow(Request$request,$id){$person=DB::table(persons)-where(id,$id)-get();returnview(showuser,compact(person));} 我在 view/show

请教 laravel view 怎么显示 controller 中传递的对象值,开发中遇到的问题,求解答!

Controller 代码:

public function show(Request $request,$id){
     $person = DB::table('persons')->where('id',$id)->get();
     return view('showuser',compact('person'));
   }

我在 view/showuser.blade.php 怎么写才能显示出 person 这个对象的值?

必须这么写才行 {{ $person[0]->id }} ???

感觉这样显示的值是个数组啊。 不是对象啊。

解决方法

通过用 Eloquent ORM 达到我想要的方式了。

同样是从数据库中取值 三种方式:

1.直接利用 DB 查询 fisrt()

$person  = DB::table('person')->where('id,$id)->first()

2.直接利用 DB 查询 get()

$person  = DB::table('person')->where('id,$id)->get()

3.通过 orm 方式

先创建 Person model 然后

$person = Person::findOrFail($id);
view('showuser',compact('person'));

那么在 showuser.blade.php 中

1 和 3 是直接用 {{ $person->FirstName }}

2 的话 需要循环数组或者直接取数组第一个值 {{ $person[0]->FirstName }}

我可以理解为 first() 和 orm 得到的都是对象可以直接通过调用对象中属性的方式 来获取数据。

而 get()得到的是数组。 所以得先取数组的值 然后在通过调用属性获取数据是么。

请教 laravel view 怎么显示 controller 中传递的对象值?

Controller 代码:

public function show(Request $request,$id){
$person = DB::table('persons')->where('id',$id)->get();return view('showuser',compact('person'));
}

我在 view/showuser.blade.php 怎么写才能显示出 person 这个对象的值?

必须这么写才行 {{ $person[0]->id }} ???

感觉这样显示的值是个数组啊。 不是对象啊。

view()->withXXX 
view('xxx,compact('xxx'))

这些传递到 view 的数据 都应该怎么显示??? 
这些数据都是什么形式? 
希望熟悉 laravel 的 指点下~

解决方法

$person = DB::table('persons')->where('id',$id)->get();

这句其实是从 Builder 对象中取回一个 Collection 对象,而该 Collection 对象中包含了 Person 对象。Collection 实现了数组相关的接口,所以也可以使用访问数组的方式获取 Person 对象。

如果想通过 id 直接获取 Person 对象,可以使用 find 方法:

$person = DB::table('person')->find($id);

Blade 中可以使用 @for、@foreach 或 @forelse 等遍历对象集合,再显示对象的属性值:

@forelse($persons as $person)
    <li> {{ $person->name }} </li>
@empty
    <span>Nothing.</span>
@endforelse

对于单个对象自然直接访问即可:

Hello, {{ $person->name }} !

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读