Laravel 3 - красноречивый запрос возвращает правила
Я пытаюсь отправить использование моделей в первый раз и впадаю в замешательство. Когда я запускаю запрос, правила связываются с ним, это должно быть так?
Модель:
class User extends Elegant
{
public static $table = 'users';
protected $rules = array(
'email' => 'required|email',
'firstname' => 'required',
'lastname' => 'required',
'initials' => 'required|alpha|match:/[A-Z]+/',
'role' => 'required|in:writer_fr,writer_en,reader',
'password' => 'min:6,max:32|same:password2'
);
public static function has_role($role)
{
//$u = new User;
$users = User::where($role, '=', 1)->get(array('firstname', 'lastname'));
return $users;
}
}
контроллер
$u = array();
$u['writer_en'] = User::has_role('writer_en');
dd($u['writer_en']);
Который выводит на экран всю модель правил, сообщений, логики отношений и т. Д. Я что-то не так делаю или это нормально?
1 ответ
Решение
В вашем has_role
метод вы возвращаете User
модель
public static function has_role($role)
{
//$u = new User;
$users = User::where($role, '=', 1)->get(array('firstname', 'lastname'));
return $users; // <-- User model
}
Таким образом, это сбрасывает User
модель, и она делает правильные вещи, как это должно быть сделано, следуя коду
$u = array();
$u['writer_en'] = User::has_role('writer_en');
dd($u['writer_en']);
Вместо того, чтобы сбросить модель, вы можете использовать
$user = User::has_role('writer_en');
echo $user->firstname;
echo $user->lastname;