Конвертируйте элемент Auth в массив перед использованием Laravel 4 - PullRequest
0 голосов
/ 26 апреля 2018

Я работаю над пользовательским разрешением пользователя в Laravel 4, после того как права входа (строка json) сохранены в Auth::user()->permissions. следующим образом:

$permissions =array(101,102);
DB::table('user')->where('id', Auth::user()->id)->update(['permissions' => json_encode($permissions)]);

Но хотя я проверяю разрешения каждый раз, когда нужно декодировать его в массив:

if(in_array(1000, json_decode(Auth::user()->permissions)){

}

но я хочу что-то, чтобы оно работало, как показано ниже:

if(in_array(1000, Auth::user()->usr_rights){

} 

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Вы можете использовать Implode

Это не самый хороший способ сделать это, но работает.

Пример:

$array = array('lastname', 'email', 'phone');

comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

U может сохранить эту строку в дополнительной строке в пользовательской таблице.

, а затем преобразовать ее обратно с помощью Explode

$pizza = "piece1, piece2, piece3, piece4, piece5, piece6";

$pieces = explode(",", $pizza);

echo $pieces[0]; // piece1

echo $pieces[1]; // piece2

0 голосов
/ 26 апреля 2018

Вы можете добавить Accessor к вашей модели:

public function getPermissionsAttribute($value)
{
    return json_decode($value);
}

, и все, что вам нужно сделать, это:

if(in_array(1000, Auth::user()->permissions){

}
...