模型实例的 makeVisible () 方法是做什么用的?

自解:
作用同 unguard() 一样, 都是为了实现批量赋值, unguard() 和 reguard() 方法参见 问答:unguard / reguard 这二个方法怎么理解?, makeVisible() 方法参见 序列化《Laravel 5.6 中文文档》

  • 在 User 模型中 有两个属性, 其中的 fillable 是允许填充, 比如 remember_toke 不在之中, 是由后台自动生成; hidden 则表示该属性在模型实例中会被隐藏, 比如 $user_arr = \App\Models\User::first()->toArray(); 这个数组中 就不包括 hidden 中的 passoword 和 remember_toke ,( 可以使用 $user->password 单独查询 ).

    protected $fillable = [
        'name', 'email', 'password',
    ];
    
    protected $hidden = [
        'password', 'remember_token',
    ];

    file

  • 现在需要使用 factory 批量给用户赋值, 如果不使用 makeVisible 方法, 那么生成的数组中也就不包括 password 和remember_token 了( 而现在批量赋值要想给这两个字段也赋值, 就需要用到这个方法了 )

    User::insert($users->makeVisible(['password', 'remember_token'])->toArray());
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

laravel5.8 实测分页使用

            {{ $users->links() }}
            {!! $users->links() !!}
            {{ $users->render() }}
            {!! $users->render() !!}

均可

5年前 评论

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