Je ne suis pas sûr de ce que je dois faire pour que les noms de tables dynamiques fonctionnent.
Considérons le modèle suivant (la table 'test' n'existe pas) :
<?php
// app/models/Test.php
class Test extends Eloquent {
}
et ensuite si je le fais (la table 'fields' existe) :
<?php
// app/routes.php
$test = new \Test;
$test->setTable('fields');
$data = $test->find(1);
dd($data);
Je reçois une erreur :
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, ))"
Notez que la définition du nom de la table à partir du modèle de test fonctionne parfaitement.
L4 utilise en fait la méthode setTable(), comme je le voudrais, dans le constructeur vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations.Pivot.php, mais je n'ai pas réussi à le faire fonctionner en suivant cet exemple.
Merci pour votre aide.