温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Laravel模型的get find first怎么使用

发布时间:2022-03-01 10:01:30 来源:亿速云 阅读:142 作者:iii 栏目:开发技术

本文小编为大家详细介绍“Laravel模型的get find first怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Laravel模型的get find first怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

学习时间

首先创建数据库表,我们不使用迁移,直接上SQL

CREATE TABLE `about`(
`id` int(10) UNSIGNED NOT NULL,
`title` varchar(500) COLLATE utf8_unicode_ci NOT NULL,
`content` text COLLATE utf8_unicode_ci,
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

只有3列,一个是主键,一个是标题,一个是文本内容。注意数据库字段,表,均声明了utf-8编码。

然后创建模型 About,指定表名,我们此处略去,直接看控制器的一个方法:

public function index()
{
    $about = About::where('title', 'about-me')->get(); //id = 3
    return view('about', compact('about'));
}

SQL查询条件是根据标题返回所有的条目,然后将结果集通过 view 视图进行渲染。

然后重点来了,视图内这样写大家看会不会有问题!?

@section('title')
    {{$about->title}}
@stop


@section('content')
    {!! $about->content !!}
@stop

如果不出意外,开启 debug = true 访问该页面时,你大概率会得到下面的错误提示:

Property [title] does not exist on this collection instance. 
(View: E:\laragon\www\newsite\resources\views\about.blade.php)

大家思考一下,这个故障是如何发生的?下一节我们给出解答。

正确写法

Laravel模型的get() 方法返回一个集合(EloquentCollection)。如果需要使用集合的属性,你首先需要进行遍历。像下面这样在视图文件内写:

@foreach ($collection as $object)
    {{ $object->title }}
@endforeach

EloquentCollection 内的每一个元素,都是一个 About Model 对象。所以可以使用 $object->title 获取到title属性。

如果你的需求很简单,就是要第一个元素的标题,简写如下:

{{ $collection[0]->title }}

如果你要获取集合内的第一个元素,使用 first 方法:

{{ $collection->first() }}

深入一步

我们知道了问题来自 get() 方法,那么,如果要获取查询数据集的第一条数据,应该用哪个呢?find()或者first()

都会返回一个 About Model 对象,在视图中就可以愉快地写:

{{ $object->title }}

读到这里,这篇“Laravel模型的get find first怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI