2014-08-20 1 views
0

не поймите, почему эта ошибка возникает при вставке нового почтового индекса и привязка его к существующей компании с использованием функции larvels eloquent принадлежит toMany.Laravel 4.2.8> many to many> создайте новую связанную модель и приложите> ошибка

здесь моя установка:

Ошибка

file: "...\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php" 
line: 411 
message: "postcode" 
type: "Illuminate\Database\Eloquent\MassAssignmentException" 


Insertcode

$postcode = new Postcode(array('postcode' => $data['plz'])); 
Company::find($data['id'])->postcodes()->save($postcode); 


Компания Модель

class Company extends Eloquent { 

    public function postcodes() 
    { 
     return $this->belongsToMany('Postcode'); 
    } 
} 


Почтовый индекс Модель

class Postcode extends Eloquent { 

    public function companies() 
    { 
     return $this->belongsToMany('Company'); 
    } 

} 


Таблица почтовых индексов

| id | postcode | 


Таблица company_postcode

| id | postcode_id | company_id | 


Таблица компании

| id | name | 


Кто-нибудь знает, почему это не правда работает?

ответ

0

Ошибка говорит

MassAssignmentException

Это потому, что вы пытаетесь массы назначить postcode

new Postcode(array('postcode' => $data['plz'])); 

Поэтому убедитесь, что вы белый список переменной почтовый индекс как масса назначаемые

class Company extends Eloquent { 

    protected $fillable = array('postcode'); 

    public function postcodes() 
    { 
     return $this->belongsToMany('Postcode'); 
    } 
} 
+0

Я думаю, что это помогло ... но я должен был объявить $ fillable в Postcode-Model, а не в компании ... все еще тестирование – Kristo

+0

Да, извините, я хотел сделать это модель почтового индекса - я скопировал неправильные часть вашего кода :) – Laurence

+0

спасибо anyways - он работает сейчас :-) – Kristo

Смежные вопросы