Ich bekomme diesen Fehler immer, wenn ich versuche, die Upload-Seite einzugeben.Undefinierte Variable: Benutzer Laravel
Kann jemand helfen?
Ich habe bereits den kompakten Teil gemacht, um sicherzustellen, dass die Variable an die Ansicht weitergegeben wird und auch meine Route sollte in Ordnung sein, denke ich.
habe ich versucht, mit dd aber alles ist mir der Fehler tut halten
Fehler bei zeigt: Nicht definierte Variable: Benutzer (Ansicht: C: \ xampp \ htdocs \ Bewertung \ resources \ Ansichten \ upload.blade.php)
Hier sind meine Codes:
upload.blade.php
<form class="form-horizontal" method="post" action="{{ url('/userUpload')}}" enctype="multipart/form-data">
{{ csrf_field() }}
<input type="hidden" name="user_id" value="{{$user->id}}">
<div class="form-group">
<label for="imageInput" class="control-label col-sm-3">Upload Image</label>
<div class="col-sm-9">
<input type="file" name="file">
</div>
</div>
<div class="form-group">
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</div>
</form>
UploadController:
public function upload(){
return view(‘upload’);
}
public function store(Request $request,$id){
$this->validate($request, [
'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
var_dump('has file '.$request->hasFile('file'));
if ($request->hasFile('file')) {
$image = $request->file('file');
$name = $image->getClientOriginalName();
$size = $image->getClientSize();
$id = $request->user_id;
$destinationPath = public_path('/images');
$image->move($destinationPath, $name);
$Image = new Image;
$Image->name = $name;
$Image->size = $size;
// $Image->user_id = $id;
//$Image->save();
$user->find($id);
dd($user);
$user->Images()->save($Image);
}
return redirect('/home');
}
public function test(){
$user = user_information::where('id')->get();
return view('upload', compact('user'));
}
Route: (dies ist meine Strecke)
Route::get('/UploadUser/upload','[email protected]’);
Route::post('/UploadUser','[email protected]');
Route::post('/UploadUser/upload', '[email protected]');
Eine andere Frage: Ich erhalte immer diese Fehlermeldung, wenn ich versuche, eine Datei zu laden, also was soll ich tun? Hier
ist der Fehler:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
form
.images
, CONSTRAINTimages_user_id_foreign
FOREIGN KEY (user_id
) REFERENCESusere_information
(id
)) (SQL: insert intoimages
(name
,size
,user_id
,updated_at
,created_at
) values (download.png, 4247, 1, 2017-10-25 08:54:57, 2017-10-25 08:54:57))
Bild Modell:
class Image extends Model
{
protected $fillable = array('name','size','user_id');
public function user_informations() {
return $this->belongsTo('App\user_information', 'user_id', 'id');
}
}
Bilder Tabelle:
Schema::create('images', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('size');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('user_informations');
$table->timestamps();
});
User_information Tabelle:
Schema::create('user_informations', function (Blueprint $table) {
$table->increments('id');
$table->engine = 'InnoDB';
$table->binary('signature');
$table->String('Name');
$table->timestamps();
});
User_information Modell:
class user_information extends Eloquent
{
protected $fillable = array('signature', 'Name');
protected $table = 'user_informations';
protected $primaryKey = 'id';
public function Images() {
return $this->hasOne('App\Image','user_id');
}
}
Wie das Bild zu bekommen? Hier ist der Ansicht Ordner:
@foreach ($data as $object)
<b>Name: </b>{{ $object->Name }}<br><br>
<a href="{{ url('/user/show/'.$object->id.'/edit') }}">Edit</a><br>
@foreach ($data3 as $currentUser)
<img src="{{ asset('public/images/' . $currentUser->Image->name) }}">
@endforeach
@if($data3->count())
@foreach($data3 as $currentUser)
<a href="{!! route('user.upload.image', ['id'=>$currentUser->user_id]) !!}">
<button class="btn btn-primary"><i class ="fa fa-plus"></i>Upload Images</button>
</a>
@endforeach
@else
<a href="{!! route('user.upload.image', ['id'=>$object->id]) !!}">
<button class="btn btn-primary"><i class ="fa fa-plus"></i>Upload Images</button>
@endif
@endforeach
Homecontroller:
public function getInfo($id) {
$data = user_information::where('id',$id)->get();
$data3=Image::where('user_id',$id)->get();
return view('test',compact('data','data3'));
Sie geschrieben 'upload.blade.php', aber Ihr Code ruft' create1'. Sind Sie sicher, dass Sie die richtige Vorlage aufrufen? –
@Dkna übergeben Sie eine '$ id' Variable in Ihre' test() 'Methode. – Jonjie
@Maraboc vielleicht löschen wir den Chat oben ein wenig, und kann ich auch nicht die ID-Nummer manuell, sondern stattdessen automatisch? Vielleicht eine For-Schleife, damit ich es nicht für alle machen muss? Beispiel vielleicht wie wenn ich in user _information id = 3 gehe, dann ist die user_id von Images 3 – Dkna