とりあえずモデルを生成する
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
まとめ
モデルには命名規則があるからデータベース設計作り直しかと思ったけど、オーバーライドで好きなように設定変えれるのでなんとかなった。とりあえず順調だからヨシ!


コメント