🕸️
降順をモデルで定義する
- DBを操作する記述をコントローラーに記述しない
- モデルで定義するか、サービスコンテナに書くか
Modelクラスで定義する
app/Models/モデル.php
class Tweet extends Model
{
public static function 関数名() {
return self::latest()->get();
}
}
コントローラー内の処理でモデルクラスの関数を使う
※use宣言をする
IndexController.php
namespace App\Http\Controllers\Tweets;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Tweet;
use App\Services\TweetService;
class IndexController extends Controller
{
public function __invoke(Request $request, TweetService $tweetService)
{
$tweets = $tweetService->関数名();
return view('tweets.index')
->with('tweets', $tweets);
}
}
staticを入れないと、ex.コントローラーで使う時、
$tweets = new Tweetのようにインスタンスを作る必要がある。
staticを入れたら、インスタンスを作らなくても大丈夫。
< クラスにはアクセス修飾子が3つある >
クラス中に定義してある変数はメンバ変数という。
アクセス修飾子がないときは、publicになる。
・public・・・どこからでもアクセス可能
・protected・・・そのクラス自身と、継承クラスからアクセス可能
・private・・・同じクラスの中のみでアクセス可能
Discussion