Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 27.11.2014 16:51:57

Alex89

MyModel::update($id, $arr)

Eсть ли какой то красивый способ обновить данные в модели, аналогично тому как делается create

В документации нашел. Но как то меня не радует писать десятки строк для каждой модели
$user = User::find(1);
$user->email = 'john@foo.com';
$user->save();

Хотелось бы что то вроде
MyModel::update($id, $arr);

#2 27.11.2014 17:35:53

Re: MyModel::update($id, $arr)

$user->fill(['email'=>"john@foo.com", 'other'=>"..."]);
Только надо чтобы эти поля были в $fillable модели.

Не в сети

#3 28.11.2014 11:26:49

Alex89

Re: MyModel::update($id, $arr)

$model = MyModel::findOrFail($item['id']);
$model->check_owner($person->id);
$model->update($item);

#4 28.11.2014 13:19:09

Re: MyModel::update($id, $arr)

Можно совсем просто. В классе модели пишешь

protected $fillable=['username','password', 'email'......];

$fillable значит, что поля могут быть заполнены автоматически данными из вьюшки
Потом в роутах

Route::post('/foo', function(){
UserModel::create(Input::all());
return Redirect:to........

Имена полей во вьюшке должны соответствовать именам колонок в mysql.
Самое клевое, что метод create не надо прописывать в модели. Магия smile

Для update можно сделать тоже самое

Route::post('/foo/{id}', function($id){
UserModel::find($id);
$user->update();
return Redirect::to.....

Изменено Afatar (28.11.2014 13:22:03)

Не в сети

Подвал раздела