動的テーブル名を機能させるために何をする必要があるのか わかりません。
次のモデルを検討してください (テーブル 'test' は存在しません):
<?php
// app/models/Test.php
class Test extends Eloquent {
}
そして、もしそうなら(「フィールド」テーブルは存在します):
<?php
// app/routes.php
$test = new \Test;
$test->setTable('fields');
$data = $test->find(1);
dd($data);
エラーが発生します:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.tests' doesn't exist (SQL: select * from `tests` where `id` = ? limit 1) (Bindings: array ( 0 => 1, ))"
Test モデルからのテーブル名の設定は問題なく機能することに注意してください。
L4 は実際には、vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations.Pivot.php コンストラクターで setTable() メソッドを使用しますが、それを機能させることはできませんでした。その例に従ってください。
手伝ってくれてありがとう。