[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
DB::transaction(function()
{
$row = App::make('DbTable')->find(1);
$row->value = 'hoge';
$row->save();
});
良い点: なんとなく直感的。
悪い点: クロージャーの中に値を渡すのが面倒。
use($var) で渡す変数をオブジェクトなり、配列なりにして必要な値を全てまとめれば良いような気もする。そもそも、クロージャーの使い所がいまいち理解できていない。DB::beginTransaction();
DB::commit();
DB::rollback();
DB::beginTransaction();
try {
$row = App::make('DbTable')->find(1);
$row->value = 'hoge';
$row->save();
DB::commit();
} catch (Exception $e) {
Log::error($e);
DB::rollback();
}
良い点: 柔軟に記述できる。
悪い点: 明示的に記述しなければいけないのが若干面倒。
Schema::create('t_action', function(Blueprint $table) {
$table->engine = 'InnoDB'; //もしくはMyISAM
//...その他カラム定義など
});
ストレージエンジンの設定をミスしていても割と気づかない事が多いので、$rules = [
'email' => 'required|email|unique:users,email',
'password' => 'min:8',
];
デフォルトで英語のエラーメッセージが出力されます。$messages = [
'required' => ':attribute は必須項目です。',
'unique' => ':attribute に使用済みの値が指定されました。',
'min' => ':attribute は :min文字以上入力してください。',
];
//入力値を取得
$input_params = Input::all();
//バリデーション
$validator = Validator::make($user_inputs, $rules, $messages);
//バリデーションエラーの有無を確認
if ($validator->fails()) {
//エラーをフラッシュセッションにセットして、入力画面に戻る・・・・
Redirect::to('path/to/input')->withErrors($validator);
}
@foreach ($errors->all() as $message)
{{{$message}}}
@endforeach