2017-05-18 6 views
1

I次のバスモデルを持っている: MassAssignmentException 232

class Bus extends Model 
{ 
    protected $guarded =['']; 
    protected $fillable = ['plate_num','seat_num']; 

    public function seats(){ 

     return $this->hasMany(Seat::class); 
    } 

    public function addSeat($number){ 

     $this->seats()->create([ 
      'seat_num'=> $number 

      ]); 
    } 
} 

そして、私のバスコントローラで

私は、フォーム(「plate_num」と「seats_num」)から2つの値を取得する次のストア機能を持っています

私は必要なフィールドを持つ$充填可能配列(席@ seat_numバスの@ plate_num)を持っていますが、私はフォームを送信するたびに、しかし、私は次のエラーを取得する:

MassAssignmentException in Model.php line 232 Seat_num

Iたとえば用シートバスプレート番号数のキー「ABC213」「5」は、一つのレコードで作成しなければならないたびにコードのロジックは基本的にバステーブルにはplate_numが含まれ、5レコードはシートテーブルに作成する必要があり、各レコードはバスのIDとシート番号を取得します。

+1

は、あなたのバスや座席モデルの「seat_num」属性ですか? 'addSeat()'メソッドでシートを作成する方法は、あなたの 'Seat'モデル上にあると思います。つまり、' fillable' attrとして追加する必要があります – jackel414

答えて

3

編集:

2つの可能性のために発生する可能性があります。

大量割り当ての場合、更新または作成操作中に一括割り当てされるモデルのすべてのフィールドを指定する必要があります。モデルファイル内

protected $fillable = ['age', 'phone', 'mail', 'location', 'created_at', 'updated_at']; 

名は$表に割り当てる必要があります。表は=「USER_INFO」

3

$fillableアレイはSeatモデルではBusモデルではありません。

使用:この場合の充填可能でSeatモデルから使用されている中よう

$this->seats()->create(...); 

あなたはSeatモデルを作成します。

1

モデル内の次の行を削除します。

protected $guarded =['']; 

ガード付きまたは塗りつぶしのみを設定し、両方を設定することはできません。また、関連モデルで正しいfillableプロパティを設定しているかどうかを確認してください。あなたがしようとしていることのより多くのコードを投稿すると助けになります。お使いのモデル

protected $fillable = ['plate_num']; 

は今、あなたは下記の手順するLaravel MassAssignmentException in model.php必要性を修正するには

use App\seat; 
use App\bus; 
public function add(){ 
$seat = new seat; 
$bus = new bus; 
0

を追加するには、コントローラで使用できるお座席モデルに

protected $fillable = ['seat_num']; 

を追加

関連する問題