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

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

  1. recent();这输出模板中的recent()方法哪里来的哟?
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案
  1. $user->topic = $user->topic()->get()
  2. 区别在于以属性访问时会自动调用get(),以方法形式调用时是返回一个EloquentBuilder,后面还可以继续调用其他的EloquentBuilder,比如你后面调用的recent(),调用完返回的同样是EloquentBuilder
  3. recent()方法应该是教程里封装的一个根据最新时间排序的scope吧(看楼上评论得知),但是这个好像是完全没有必要的,因为框架的模型自带了一个latest() scope,作用也是根据最新时间排序,所以完全没必要自己再写一个recent() scope
5年前 评论
讨论数量: 4
  1. $user->topic = $user->topic()->get()
  2. 区别在于以属性访问时会自动调用get(),以方法形式调用时是返回一个EloquentBuilder,后面还可以继续调用其他的EloquentBuilder,比如你后面调用的recent(),调用完返回的同样是EloquentBuilder
  3. recent()方法应该是教程里封装的一个根据最新时间排序的scope吧(看楼上评论得知),但是这个好像是完全没有必要的,因为框架的模型自带了一个latest() scope,作用也是根据最新时间排序,所以完全没必要自己再写一个recent() scope
5年前 评论
  1. $user->topic = $user->topic()->get()
  2. 区别在于以属性访问时会自动调用get(),以方法形式调用时是返回一个EloquentBuilder,后面还可以继续调用其他的EloquentBuilder,比如你后面调用的recent(),调用完返回的同样是EloquentBuilder
  3. recent()方法应该是教程里封装的一个根据最新时间排序的scope吧(看楼上评论得知),但是这个好像是完全没有必要的,因为框架的模型自带了一个latest() scope,作用也是根据最新时间排序,所以完全没必要自己再写一个recent() scope
5年前 评论

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

5年前 评论

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

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!