谢谢大家,我有两个表名为Produto,另一个名称为ProdutoCategoria名称。当我建立关系模型时,只有ProdutoCategoria对象返回Produdo,但是Produto不返回对象ProdutoCategoria,为什么?。
class ProdutoCateg extends Model
{
public function produtos(){
return $this->hasMany('app\Produto');
}
}
class Produto extends Model
{
public function categoria(){
return $this->belongsTo('app\ProdutoCateg');
}
}
class Fktables extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('produtos', function ($table){
$table->foreign('id_produto_categs')->references('id')->on('produto_categs');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
答案 0 :(得分:2)
尝试添加关联的foreign key
字段,Laravel无法猜测它,因为您没有遵循命名约定数据库架构。
class Produto extends Model
{
public function categoria(){
return $this->belongsTo('App\ProdutoCateg', 'id_produto_categs');
}
}
示例强>
产品模型应该有一个名为products
的表
和 ProductCategory 模型应该有一个名为product_categories
的表,
现在要创建与类别使用table_name (singular) + _id
的关系,在这种情况下将是product_category_id
。我希望这是有道理的。
为了让这项功能自动生效,您需要在produto_categ_id
表格中将FK更改为produtos
。
答案 1 :(得分:0)
您应该尝试将app
更改为App
例如:
public function produtos {
return $this->hasMany('App\Produto');
}