2017-09-06 2 views
0

ich eine Funktion Laden mit einer Beziehung mit einem anderen Tisch machen versucht, aber wenn ich einen neuen Wert in db versuche erstellen habe ich dieses ProblemFehler Laravel SQLSTATE [23000]

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'album_id' cannot be null (SQL: insert into `photos` (`image`, `album_id`, `updated_at`, `created_at`) values (data:image/png;base64,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, , 2017-09-06 17:53:01, 2017-09-06 17:53:01)) 

ich die Nachricht zu verstehen, aber ich verstehe nicht, warum es mich diesen Fehler senden, weil ich diesen Wert am Übergang in der create-Methode sehen diesen Code

public function store(Request $request){ 

    $albumVar = $this->album->create([ 
     'title' => $request->get('title'), 
     'description' => $request->get('description'), 
     'user_id' => $request->get('user_id') 
    ]); 

    $photosEncoded[] = null; 
    $photosCount = 0; 
    foreach ($request->file('photo') as $file){ 
     $names[$photosCount] = $file->getPathName(); 
     $photosEncoded[$photosCount] = (string)Image::make($names[$photosCount])->encode('data-url'); 
     $photosCount++; 
    } 

    for($i = 0; $i<$photosCount; $i++) { 
     $photosVar = $this->album->photo()->create([ 
      'image' => $photosEncoded[$i], 
      'album_id' => $albumVar->id 
     ]); 

     if(!$photosVar) 
      return 'falhou'; 
    } 
    if($albumVar) 
     dd($albumVar); 
    else{ 

     dd($albumVar); 
     return 'falhou 1'; 
    } 
} 

, wenn ich den Wert debuggen $ albumVar-> id, das funktioniert gut ...

mein m odel Foto

class Photo extends Model { 
protected $fillable = ['image','album_id']; 

public function album(){ 
    return $this->belongsTo('App\Album'); 
} 

}

meine Migration

public function up() 
{ 
    Schema::create('photos', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->text('image'); 
     $table->integer('album_id')->unsigned(); 
     $table->foreign('album_id')->references('id')->on('albums')->onDelete('cascade'); 
     $table->timestamps(); 
    }); 
} 

mir jemand bei diesem Problem helfen kann?

+0

Fügen Sie den vollständigen Fehler bitte –

+0

könnten Sie versuchen, Hinzufügen von 'dump ($ albumVar)' unter 'für ($ i = 0; $ i <$ photosCount; $ i ++) {' und zeige die Ausgabe an? – Quezler

+0

hier ist der Dump https://imgur.com/a/6w60I – Lodi

Antwort

0

können Sie wie folgt versuchen,

ersetzen $ this-> Album zu $ albumVar

$photosVar = $albumVar->photo()->create([ 
      'image' => $photosEncoded[$i], 
      'album_id' => $albumVar->id 
     ]); 
+0

Ich löse dies mit $ photo = new Photo; und ändern Sie in der erstellen, aber Ihre Methode ist viel besser, vielen Dank! – Lodi

Verwandte Themen