@include ('users._topics', ['topics' => $user->topics ()->recent ()->paginate (5)])?
0

@include('users._topics', ['topics' => $user->topics()->recent()->paginate(5)])
这一节请教下大家2个问题,
1.user模型下获取topic属性数据用$user->topic; 这个上面的$user->topic() 有什么区别呢,一个属性一个是方法?什么场景下用呢?

  1. recent();这输出模板中的recent()方法哪里来的哟?
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
FMW
最佳答案
  1. $user->topic = $user->topic()->get()
  2. 区别在于以属性访问时会自动调用get(),以方法形式调用时是返回一个EloquentBuilder,后面还可以继续调用其他的EloquentBuilder,比如你后面调用的recent(),调用完返回的同样是EloquentBuilder
  3. recent()方法应该是教程里封装的一个根据最新时间排序的scope吧(看楼上评论得知),但是这个好像是完全没有必要的,因为框架的模型自带了一个latest() scope,作用也是根据最新时间排序,所以完全没必要自己再写一个recent() scope
1个月前
讨论数量: 4

关联方法 Vs. 动态属性,关联方法主要是还可以传个闭包对关联的数据进行筛选,其他的都一样

2个月前

回答第二个问题:
recent()方法时 Topic模型中定义的本地作用域 scopeRecent(), 用于获取Topic中的最新创建的数据(也就是按照created_at的desc排序)

1个月前
FMW
  1. $user->topic = $user->topic()->get()
  2. 区别在于以属性访问时会自动调用get(),以方法形式调用时是返回一个EloquentBuilder,后面还可以继续调用其他的EloquentBuilder,比如你后面调用的recent(),调用完返回的同样是EloquentBuilder
  3. recent()方法应该是教程里封装的一个根据最新时间排序的scope吧(看楼上评论得知),但是这个好像是完全没有必要的,因为框架的模型自带了一个latest() scope,作用也是根据最新时间排序,所以完全没必要自己再写一个recent() scope
1个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!