关于这一段代码有点疑惑

  public function getIsFavoritedAttribute()
    {
        return $this->isFavorited();
    }

为什么会定义一个访问器,然后返回的是他自身。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Epona
最佳答案

$this->isFavorited(); 是Model内的另一个方法吧。

4年前 评论
讨论数量: 6

可以使用$model->is_favorited

4年前 评论
Epona

$this->isFavorited(); 是Model内的另一个方法吧。

4年前 评论

isFavorited() 里面应该是写了 $this->xxx === boolean,这么写可能是想达到$cast属性的效果。

4年前 评论

laravel 很多方法很 魔术的, 建议看下相关的源码 :smiley:

4年前 评论

访问器本身就是当你需要取数据的时候,做一些自定义操作,比如特殊的类型转换。

当然 is_favorited 可能并不是一个真正存在的字段,而是一个由其他字段虚拟出来的结果。

比如可能是 status 字段,当 status 值为 3 时,表示 is_favorited

但是如果用 status 是否等于 3 这样的判断,会让后面维护业务层代码的人员懵逼(如果没有任何文档和注释的话),所以这种语义化的方式也是便于后期的团队协作!

这里引用一句话:“专业就是让与你共事的人感到舒服”,当别人 review 代码时,不不至于感叹 what the fuck

4年前 评论

谢谢大家的回复,我在提问的时候确实没有分清方法和属性的概念。才会提出这样的问题,导致大家以为我想问的是访问器是什么意思。其实这刚好是一个同名的方法。我自己可能没有看到这个方法。也没有主动去 github 里查看,感觉自己挺蠢的。谢谢大家的回复。

    /**
     * Determine if the current reply has been favorited.
     *
     * @return boolean
     */
    public function isFavorited()
    {
        return ! ! $this->favorites->where('user_id', auth()->id())->count();
    }
4年前 评论

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