Laravel Controller
クラス
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index()
{
return ~;
}
}
リクエスト
パラメータ取得
class TestController extends Controller
{
use Illuminate\Http\Request;
public function index(Request $request)
{
リクエストパラメータ取得(GET/POST共通)
$param = $request->input(‘param’);
判定
if (is_null($request->input(‘param’))){
~
}
全取得
$form = $request->all();
全取得の内一部削除
unset($form[‘_token’]);
全取得したパラメータをインサート
$this->TestModel->fill($form)->save();
~
return ~;
}
}
バリデーション
モデル
use Illuminate\Database\Eloquent\Model;
class TestModel extends Model
{
public static $rules = [
’string_param’ => ‘required’,
’int_param’ => ‘required|integer’,
’datetime_param’ => ‘required|date_format:Y/m/d H:i’,
];
public static $message = [
’string_param.required’ => ‘~が設定されていません’,
’int_param.required’ => ‘~が設定されていません’,
’datetime_param.required’ => ‘~が設定されていません’,
’datetime_param.date_format’ => ‘~が不正です’,
];
~
}
コントローラ
class TestController extends Controller
{
use Illuminate\Http\Request;
use App\Models\TestModel;
public function update(Request $request)
{
バリデート実行
$this->validate($request, TestModel::$rules, TestModel::$message);
~
return ~;
}
}
ビュー
@if (count($errors) > 0)
<div class=”alert alert-danger”>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
レスポンス
ビューファイル指定
return view(“PhpUnit/index”);
※resources\views\PhpUnit\index.blade.phpを作成しておく事
ビューファイル+データ
単一データ
$data = [
~
];
return view(“PhpUnit/index”, [‘data’ => $data]);
複数データ
$data = [
“data1” => $data1,
“data2” => $data2,
];
return view(‘test.normal’)->with($data);
Json
$response = [
’item1′ => 123,
’item2′ => 456,
];
return json_encode($response, JSON_UNESCAPED_UNICODE);
リダイレクト
通常
return redirect(‘test/index’);
ステータスコード付き
return redirect(‘test/index’, 301);
セッションの条件に応じて
return redirect->intended(‘test/index’);
Sessionに保存されているurl.intendedがある場合はそのページにリダイレクト
もしない場合にtest/indexへリダイレクト
元のページへ戻す
return back()
->withInput() // 入力値の保持
->withErrors([‘message’ => ‘パスワードが違います’]);