2015-04-22 6 views
1

У меня есть красноречивая модель, которая использует пользовательскую таблицу, исходящую из таблицы пользователя.Модель с пользовательской таблицей не сохраняется, в Laravel 3

Как так ...

class Appointment extends Eloquent 
{ 
    public static $table = null; 
    public function __construct() 
    { 
     parent::__construct(); 

     // Here I load the custom table, from the user table 
     // Pull the prefix of the table, and append 
     // This works perfectly fine for viewing the data 
     static::$table = Auth::user()->tenantTable()."_appointments"; 
    } 

    public static $connection = 'tenant-data'; 
    public static $timestamps = true; 

я могу тянуть, и просматривать данные прекрасно с этой установкой. Поэтому каждый пользователь имеет свою собственную таблицу встреч.

Однако, если я что-то изменил, а затем использовал метод redoquent save(). Я получаю рекурсивный вызов, который никогда не заканчивается.

Что мне нужно изменить в методе laravels save(), чтобы заставить это работать?

И мне нужно изменить его в ядре? Или я могу переопределить метод save() в текущей модели? И если да, то как?

+0

Вы действительно используете Laravel 3? Laravel 5 сейчас нет. – ceejayoz

+0

@ceejayoz Im осведомлен .... но я не собираюсь полностью переносить весь сайт. Просто добавьте несколько добавок с несколькими арендаторами. У вас нет времени или ресурсов. – KyleK

+0

Хороший вопрос. Интересно, сколько людей есть, кто еще помнит Laravel 3 :) –

ответ

0

Я почти догадываюсь, но попытался ли вы изменить порядок команд вашего конструктора? Сначала задайте таблицу динамически, а затем вызовите родительский конструктор?

0

Я не уверен, чего вы пытаетесь достичь, но вы можете отменить родительский (красноречивый на вашем случае) метод сохранения.

class Appointment extends Eloquent{ 
    public function save(){ 
     //Do your own save stuff 
     .... 
     // call Eloquent's save function to finish 
     parent::save(); 
    } 
}