2016-07-13 2 views
0

나는 두 테이블 하나를 Produto라고하고 다른 하나는 ProdutoCategory라는 이름을 가지고 있습니다. 관계를 모델로 만들면 ProdutoCategoria 객체 만 Produdo를 반환하지만 Produto는 ProdutoCategoria 객체를 반환하지 않습니다. 이유는 무엇입니까?Laravel not return BelongsTo

시도는 관련 foreign key 필드를 추가
public function produtos { 
    return $this->hasMany('App\Produto'); 
} 
+0

그럼 Produto는 무엇을 반환합니까? – geckob

+0

마이그레이션을 표시 할 수 있습니까? 외래 키 생성뿐만 아니라 –

답변

0

당신은 appApp에 변경 시도해야합니다.

class Produto extends Model 
{ 
    public function categoria(){ 
     return $this->belongsTo('App\ProdutoCateg', 'id_produto_categs'); 
    } 
} 

제품 모델은 될 것입니다, 테이블 카테고리 사용 table_name (singular) + _id와 관계를 만들기 위해 지금 product_categories라는 테이블, 을 가져야한다 productsProductCategory 모델 이름이 있어야합니다 이 경우 product_category_id. 나는 그것이 의미가 있기를 바랍니다.

이 작업을 자동으로 수행하려면 테이블에 FK를 produto_categ_id으로 변경해야합니다.

2

는 Laravel 당신이 규칙 DB 스키마를 명명 다음에 있지 않기 때문에, 그것을 추측 할 수 없습니다 :

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() 
    { 
     // 
    } 
}