我有一個結構2款這樣的:錯誤創建子女關係
class Contenuti extends Eloquent {
public function dettaglio()
{
return $this->hasOne('ContenutiDettaglio', 'contenuto_id');
}
}
class ContenutiDettaglio extends Eloquent {
public function contenuto()
{
return $this->belongsTo('Contenuti', 'contenuto_id', 'id');
}
}
我試圖創建一個Contenuti時延長Contenuti的findOrNew總是添加ContenutiDettaglio項目。
,我寫我的分機是這樣的:
public static function findOrNew($id, $coloumns = array())
{
$obj = parent::findOrNew($id);
if(!isset($obj->dettaglio()->id))
{
$obj->save();
$dettaglio = ContenutiDettaglio::create(array('titolo' => 'Nuovo contenuto'));
$dettaglio->contenuto()->associate($obj);
$obj = Contenuti::findOrFail($obj->id);
dd($obj->dettaglio());
}
return $obj;
}
在數據庫中ContenutiDettaglio記錄包含父ID正常,但是當我傾倒$ obj-> dettaglio()其空。難道我做錯了什麼?
編輯:
這裏是我的遷移:
#Contenuti
public function up()
{
Schema::create('contenuti', function($t) {
$t->engine = 'MyISAM';
// vecchia tabella "contenuti"
$t->increments('id');
$t->bigInteger('userid')->nullable();
$t->boolean('pubblica');
// vecchia tabella "contenuti_it"
$t->timestamp('pubblica_dal')->nullable();
$t->timestamp('pubblica_al')->nullable();
$t->timestamps();
$t->index('pubblica_dal');
$t->index('pubblica_al');
$t->index('created_at');
$t->index('updated_at');
});
}
#ContenutiDettaglio
public function up()
{
Schema::create('contenuti_dettaglio', function(Blueprint $table)
{
$table->engine = 'MyISAM';
$table->increments('id');
$table->integer('contenuto_id');
$table->string('keywords', 255);
$table->string('titolo', 255);
$table->text('sottotitolo');
$table->text('occhiello');
$table->text('riassunto');
$table->text('descrizione');
$table->index('contenuto_id');
$table->index('titolo');
});
}
凡contenuto_id在contenuti_dettaglio是2個表之間的鍵。
感謝hannesvdvreken您的迴應,我已經嘗試過您的解決方案,但沒有成功。我已經發布了我的遷移... – 2014-10-17 12:00:08
我已經解決了我的問題,在這樣 '公共靜態函數findOrNew($ ID,$ coloumns =陣列()){ $ OBJ =父:: findOrNew($ ID); 如果($ obj-> ID == NULL){ \t $ obj->保存(); \t $詳細=新ContenutiDettaglio(陣列( '標題'=> '新內容', 'contenuto_id'=> $ obj-> ID)); \t $ detail->保存(); \t未設置($ OBJ); \t $ OBJ =自我::發現($ detail-> contenuto_id); }返回$ OBJ; – 2014-10-17 14:54:11
}'那不是真的建議,但它是否適合你,你不煩......然後,我爲你感到高興:-) – hannesvdvreken 2014-10-18 15:34:06