La mia applicazione è un CMS destinato ai siti Web per le aziende. Ho una tabella chiamata business_info che assomiglia a questo:Migliore pratica eloquente per la tabella tipo coppia chiave/valore
id | field | value
-----------------------------------------
1 | name | Testing Company
2 | official name | Testing Company LLC
3 | main_location | The Bay Area
4 | year | 1999
5 | address | 55 Street Rd
6 | suite | Unit 5
7 | city | Anytown
8 | state | CA
9 | zip | 55555
10 | tollfree | 1(888) 555-5555
non credo che l'attuale modello di Eloquente lavorerà per gestire in modo efficiente queste informazioni, così ho esteso e iniziato a lavorare su un modello più utile. Mi piacerebbe essere in grado di fare qualcosa di simile:
$business_info->zip = "66666";
$business_info->save();
Questo è quello che ho finora, ma non sono sicuro di come procedere:
class Business_Info extends Eloquent
{
public static $table = 'business_info';
public static function all()
{
$business_info_rows = with(new static)->query()->get();
foreach ($business_info_rows as $business_info_row)
{
$business_info[$business_info_row->attributes['field']] = $business_info_row->attributes['value'];
}
return $business_info;
}
public function __set($key, $value)
{
}
}
Forse qualcuno potrebbe offrire alcuni consigli su come procedere o forse un altro approccio? Grazie!
In laravel 5 ottengo l'eccezione "BadMethodCallException", chiamata al metodo non definito Illuminate \ Database \ Query \ Builder :: set_attribute() '. È rilevante per laravel 5. se non come si fa in laravel 5? –