Laravelを初めて使用しています。 Eloquent Modelを使用してDBのデータにアクセスしようとしています。Eloquentモデルでテーブル名を動的に設定する方法
テーブル名などの類似点を共有するテーブルがあります。
私は、以下のようなDBの複数のテーブルにアクセスするために1つのモデルを使用したいと思いますが、運がありません。
テーブル名を動的に設定する方法はありますか?
何か提案やアドバイスをいただければ幸いです。前もって感謝します。
モデル:
class ProductLog extends Model
{
public $timestamps = false;
public function __construct($type = null) {
parent::__construct();
$this->setTable($type);
}
}
コントローラー:同じ問題に苦しむ人のために
public function index($type, $id) {
$productLog = new ProductLog($type);
$contents = $productLog::all();
return response($contents, 200);
}
ソリューション:
私がして、テーブル名を変更することができました@Mahdi Younesiが提案しました。
そして私は
$productLog = new ProductLog;
$productLog->setTable('LogEmail');
$logInstance = $productLog->where('origin_id', $carrier_id)
->where('origin_type', 2);
、あなたは別のテーブル名を毎回渡したいですか? –
はい。特定のテーブルのみ。類似の属性を持つ表 – smchae
私はあなたがすべてのテーブルのモデルを作ることを提案できますが、モデル名をその関数に渡すことでモデルのオブジェクトを作る共通の関数を教えて、モデルオブジェクトを動的に得ることができます。 –