laravel: Eloquent все () данные отсутствуют при преобразовании в JSON - PullRequest
0 голосов
/ 24 января 2019

Часть данных не может быть получена, если для объекта Eloquent установлено значение Json.

  1. Я использую команду artisan make:Auth и настраиваемую таблицу пользователей.

В частности, я подумал, что мне не нужно один раз удалять столбец электронной почты,
но так как это стало необходимым, я добавил его снова.
В этих операциях используется файл миграции.

  1. Я получил все данные таблицы пользователей и вернул ее вместе с Json.

Но электронная почта не выводится.

class UserController extends Controller
{
    public function index() {
        return User::all();
    }
}

Даже при использовании json_encode произошло то же самое.


Существует при использовании этого

$user = User::all();
$userArray = array();
foreach ($user as $u){
    $userArray[] = [
        'name' => $u->name,
        'email' => $u->email
    ];
}
return $userArray;

Почему не выводится электронное письмо?

(Я полагаюсь на перевод Google)


Дополнительные примечания

Спасибо всем за комментарий.
Сравнивая вывод json с dd (), пароль и Remember_token не выводились в дополнение к электронной почте.

Возможно, электронная почта является частной собственностью, а частная собственность - это механизм, который не выводит JSON?
В таком случае, как я могу перейти на общедоступный?

Модель пользователя выглядит следующим образом

class User extends Authenticatable
{
    use Notifiable;
    use SoftDeletes;

    protected $table = 'users';
    protected $dates = ['deleted_at'];
    protected $primaryKey = 'uuid';
    protected $keyType = 'string';
    public $incrementing = false;

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

    protected $hidden = [
        'password', 'email','remember_token',
    ];
~~~
}

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Я решил это сам.
Я обнаружил, что указанный здесь столбец не выводится в JSON.

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

Это была очень простая вещь ...

0 голосов
/ 24 января 2019

попробуйте это:

return User::select('name', 'email')->get()->toArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...