2016-06-26 29 views
0
class Product extends Model 
{ 
    use SoftDeletes; 
    protected $dates = ['deleted_at']; 
    public $timestamps = true; 
    protected $fillable = ['name']; 
    protected $connection = 'pos'; 

    public function __construct() 
    { 
     config(['database.connections.pos.database' => 'pos_1']); 
     parent::__construct(); 
    } 
} 

Product::create(['name' => 'Snack']); 

auf meinem db id = 1, name = null, created_at = '2016.06.26 18.30.24', updated_at = erstellen 2016.06.26 18.30.24 ', deleted_at = nullLaravel Eloquent null Feld '

Warum name = null?


aktualisieren Post

funktioniert, wenn ich

$p = new Product(); 
$p->name = 'Snack'; 
$p->save(); 

verwenden, aber warum Product::create(['name' => 'Snack']); Füllung als null?


Update-Post (gelöst)

ah I an diesem Konstruktor Array als Parameter fehlt.

 public function __construct(array $attributes) 
     { 
      config(['database.connections.pos.database' => 'pos_1']); 
      parent::__construct($attributes); 
     } 

Antwort

2

Wahrscheinlich ist der Grund, dass Sie nicht erneut Elternkonstruktor ausführen.

Statt:

public function __construct() 
{ 
    config(['database.connections.pos.database' => 'pos_1']); 
} 

Sie verwenden sollten:

public function __construct() 
{ 
    config(['database.connections.pos.database' => 'pos_1']); 
    parent::__construct(); 
} 

Beachten Sie, dass für Ihr Eloquent Modell Sie haben auch connection Eigenschaft, so dass Sie wahrscheinlich auch der Datenbankverbindung nennen einstellen könnte.

+0

hinzugefügt Sir, ich bearbeite meinen Beitrag, aber immer noch null. –

+0

Haben Sie eine Mutator-Methode? Ich meine, haben Sie die setAttribute-Methode für Ihre Klasse definiert? –

+0

Nein Herr, meine Klasse, genau wie auf Zitat über –