とりあえずモデルを生成する
php artisan make:model Model名
ファイル生成される場所は『appフォルダ』
コマンドを打って既存DB用のモデルを作成。モデル名はとりあえずわかるようにつければヨシ!
※テーブルがUsersならモデルはUserみたいに複数形と単数形にするのが命名規則
生成したモデルに既存のテーブル用の設定をする
デフォルトで命名規則通りの設定がされるのでオーバーライドして書き換える。
テストコード
namespace App; use Illuminate\Database\Eloquent\Model; class test_model extends Model { //デフォルトの設定をprotectedでオーバーライドする protected $table = ''; // 既存のテーブルを指定 protected $primaryKey = ''; // プライマリキーを指定 protected $created_at = ''; // 使用するフィールド名を指定 protected $updated_at = ''; // 使用するフィールド名を指定 // タイムスタンプ使わない場合は$timestampsをfalseにする public $timestamps = false; public function __construct(array $attributes = []) { parent::__construct($attributes); } }
コントローラで呼び出して動作確認
use でモデルを呼び出さないと動かないので注意
テストコード
namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\test_model; class MainController extends Controller { public function index() { $test= test_table::where('test_filed1','Laravel')->firstOrFail(); return view('index',compact('test')); } }
参考
5.7 Eloquent:利用の開始 Laravel
まとめ
モデルには命名規則があるからデータベース設計作り直しかと思ったけど、オーバーライドで好きなように設定変えれるのでなんとかなった。とりあえず順調だからヨシ!
コメント