在某些路线中显示隐藏的属性(api_token)

时间:2017-11-19 15:09:07

标签: laravel laravel-5.5

我使用的是Laravel 5.5.13。我通过执行以下操作为我的用户迁移api_token字段:

php artisan make:migration --table=users adds_api_token_to_users_table

然后像这样实施迁移:

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('api_token', 60)->unique()->nullable();
    });
}

public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn(['api_token']);
    });
}

我想要这个" api_token"字段仅显示某些端点,并隐藏在其余端点上。如果在我的User.php模型中,如果我添加到protected $hidden = []数组,那么它将隐藏在所有数组中。我需要这个" api_token"要在我的LoginController.php中的注册表和登录端点中显示的字段:

public function login(Request $request)
{
    $this->validateLogin($request);

    if ($this->attemptLogin($request)) {
        $user = $this->guard()->user()->load('pets');
        $user->generateToken();

        return $user;
    }

    return $this->sendFailedLoginResponse($request);
}

在我的RegisterController.php

protected function registered(Request $request, $user)
{
    $user->generateToken();

    return response()->json($user, 201);
}

是否可以在这些端点中显示隐藏字段?

1 个答案:

答案 0 :(得分:3)

如果您想在给定的模型实例上显示一些通常隐藏的属性,可以使用rand(1600,100) 方法。 https://laravel.com/docs/5.5/eloquent-serialization