差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| PHP:Laravel仕様:Model [2023/03/02 23:44] – 削除 - 外部編集 (Unknown date) 127.0.0.1 | PHP:Laravel仕様:Model [2025/04/12 05:15] (現在) – 外部編集 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | # Model | ||
| + | |||
| + | ### カスタムのテーブル名 | ||
| + | |||
| + | 参考:[雄弁 - Laravelは、データベーステーブルがモデル名の複数形であると想定しています](https:// | ||
| + | |||
| + | デフォルトではテーブル名はモデル名の複数形であると想定されて処理が走る。 | ||
| + | |||
| + | しかし、テーブル名が「news」の場合があるが、無理にモデルを「new」にする必要はない。 | ||
| + | |||
| + | 下記のようにモデルでカスタムテーブルを宣言すれば問題ない。 | ||
| + | |||
| + | ``` | ||
| + | <?php | ||
| + | |||
| + | namespace App; | ||
| + | |||
| + | use Illuminate\Database\Eloquent\Model; | ||
| + | |||
| + | class News extends Model | ||
| + | { | ||
| + | /** | ||
| + | * The table associated with the model. | ||
| + | * | ||
| + | * @var string | ||
| + | */ | ||
| + | protected $table = ' | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | ### スコープ | ||
| + | |||
| + | 参考:[【Laravel】Eloquent(エロクアント)のscopeとは?ローカルとグローバルの違い](https:// | ||
| + | |||
| + | モデルクラスに**スコープ**と呼ばれるメソッドを定義することで、データベースから取得するデータの範囲をすることができる。 | ||
| + | |||
| + | ``` | ||
| + | class User extends Model | ||
| + | { | ||
| + | use HasFactory; | ||
| + | |||
| + | public function scopeOverId($query, | ||
| + | { | ||
| + | return $query-> | ||
| + | } | ||
| + | } | ||
| + | |||
| + | class appController extends Controller | ||
| + | { | ||
| + | public function index(Request $request) | ||
| + | { | ||
| + | $records = User:: | ||
| + | } | ||
| + | } | ||
| + | ``` | ||