我很抱歉問這個問題,但我來自codeIgniter,並且很難理解雄辯的模型插入。這是一種與我合作的新模式。laravel:雄辯的例子插入數據到數據庫
我已閱讀this article並瞭解一些基本知識。
我有下面的例子。我有一個產品有很多屬性,但相關的是品牌和產品名稱。 (請看下面的例子表)
產品:ID(PK),名稱,描述,brand_id 品牌:ID(PK),名
現在,這裏是問題。我知道我可以創建一個新品牌,並且我知道如何創建一個新產品。但我不知道如何將兩者連接在一起。這裏是我現在的一些代碼。我想創建一個新產品並自動填充品牌表。這是現在控制器的一部分。
總之。我想要products.id內的品牌.id
$product = new Products;
$product->name = "product1";
$product->description = "description1";
$brand = new Brands;
$brand->name = "brand1"
$product->brand()->associate($brand);
$brand->save();
$product->save();
爲了更清楚。我有2個模型。產品和品牌模型。但是,我不清楚模型中應該包含什麼。這是我現有的產品型號。我認爲品牌模型只應該有一個受保護的$ table =「品牌」;在模型類裏面。
class Products extends Eloquent {
protected $table = 'products';
public function brand()
{
return $this->hasOne('brands');
}
}
有人可以向我解釋我做錯了什麼。我無法找到一個很好的教程,如何在有關係的雄辯模型中插入數據。大多數教程都是關於顯示數據的。
甚至在調用'$ product-> associate();之前,您可能需要保存品牌。 – alexrussell
剛剛在你的文章中發現,你認爲你「認爲品牌模型只應該有一個'保護$ table =」品牌「;'線條」,但據我所知這不是真的。我很確定這個模型必須有一個'public function product(){return $ this-> belongsTo('Product'); }'方法,那麼$ products模型上的'associate()'調用可以填充'Brands'模型中的'product_id'字段。我不是100%擁有'hasOne',但這絕對是如何與'hasMany'搭配的,並且它與關係相反(即模型具有'foreign_id'列)是同一類事物。 – alexrussell