Service層を意識したLaravelのMVCモデル(実践編)
4773 ワード
はじめに
前回Service層を意識したLaravelのMVCモデル(概念編)についてまとめたので、こちらも参考にしていただければと思います。
前回は仕組みについてまとめたので今回は実際にどんな感じにコーディングするのかまとめてみました。
実際にコードを覗いてみましょう
今回はDBに登録済みのユーザーデータを取得し一覧画面に表示するというコーディングをします。
コントローラ層:必要な情報を整理して画面表示や処理を指示する
UserController.php
<?php
namespace App\Http\Controllers;
use App\Services\UserService;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View;
/**
* ユーザーに関するコントローラークラス
* @package App\Http\Controllers
*/
class UserController extends Controller
{
/**
* ユーザー一覧画面表示
* @return ユーザー一覧
*/
public function index() :View
{
$users = UserService::getUsers();
return view('user.index', compact('users'));
}
}
サービス層:取得したデータの並び替えなどの加工をする
UserService.php
<?php
namespace App\Services;
use App\Models\User;
use Illuminate\Database\Eloquent\Collection;
/**
* ユーザー情報のサービスクラス
* @package App\Services
*/
class UserService
{
/**
* 全ユーザー情報取得
* @return Collection 全ユーザー情報
*/
public static function getUsers(): Collection
{
return User::getUsers();
}
}
モデル層:データを取得するなどDBの操作をする
User.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
/**
* ユーザーテーブルのモデルクラス
* @package App\Models
*/
class User extends BaseModel
{
/**
* 全ユーザー情報取得
* @return Collection 全ユーザー情報
*/
public static function getUsers(): Collection
{
return self::all();
}
おわりに
今回は簡潔にまとめるために並び替えや取得するデータの指定などはしませんでしたが、ぜひ試してみてください。
Author And Source
この問題について(Service層を意識したLaravelのMVCモデル(実践編)), 我々は、より多くの情報をここで見つけました https://qiita.com/yukachin0414/items/bb6c94617afd4963ed83著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .