[過去ログ] 【PHP】下らねぇ質問はここに書き込みやがれ 11 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
837(2): (ワッチョイ 427c-IMun) 2021/03/17(水)23:04 ID:W80ESG/m0(2/3) AAS
>>836
DIは今はどうでもいいのでパスして
MVCのModelの部分が納得いかないという事なのは分かるので取りあえずLaravelの話をすると
Laravelが採用しているEloquentというのは、railsのactiverecordとか一般的になORMとは結構違う部分があり
Eloquentでは、特にカラム名の定義を書く必要はありません
(キャストしたりする場合やidがプライマリーキーじゃないなど設定を変更する場合は書く必要があるが)
ただ、モデルを扱う上ではキャメルケースで単数形のクラスの定義だけは必要です
(テーブル名は基本的に複数形とするが、このルールに従わない場合は、モデル内に実際のテーブル名を指定出来る)
モデルクラスを用意しておけば、コントローラから例えばplayersテーブルにアクセスするPlayerクラスのモデルを利用して
id=1のデータを取るなら
$player = Player::find(1);
のような形で取れます。これはselect * from players where id=1 limit 1と同等です
検索キーが違う場合は、Player::where('key',1)->first()みたいな形で一つだけ取って来れます
これはselect * from players where key=1 limit 1と同等です
find()やfirst()で終わった場合は、結果は一つだけなので、Playerのインスタンスが返されます
そのインスタンスには他のカラムのデータ全てが入っている為、player->idやらplayer->keyなどで
それぞれのカラムが取得できます
複数になりうる条件の場合、例えばresult = Player::where('key','>',1)->get()みたいな場合は
結果は配列となり帰ってきます
この場合、結果が0でも空の配列になるし、結果が一つでも1個の配列になります
ですので1個目の結果がいるならresult[0]->idみたいな形でカラムにアクセスしますが
通常ならforeach()等で回ってそれぞれを処理する形になるでしょう
上下前次1-新書関写板覧索設栞歴
あと 165 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.009s