【发布时间】:2020-06-03 17:55:16
【问题描述】:
当我实现创建视图时它工作正常,但在实现显示视图后它停止工作并抛出以下错误:
Facade\Ignition\Exceptions\ViewException 试图获取非对象的属性“foto”(查看:C:\xampp\htdocs\alme\resources\views\aluminio\show.blade.php) http://127.0.0.1:8000/aluminio/create
AluminioController.php
{
$productos = Aluminio::all();
return view('aluminio.index',compact("productos"));
}
public function show($id)
{
$productos =Aluminio::find($id);
return view('aluminio.show', compact('productos'));
}
public function create()
{
return view('aluminio.create');
}
public function store(Request $request){
$productos = $request->all();
if($request->hasFile('foto')){
$productos['foto']=$request->file('foto')->store('uploads','public');
}
Aluminio::create($productos);
return redirect(route('aluminio'));
}
web.php
Route::get('aluminio', 'AluminioController@index')->name('aluminio');
Route::get('aluminio/{id}', 'AluminioController@show')->name('aluminio.show');
Route::get('aluminio/create', 'AluminioController@create')->name('aluminio.create');
Route::post('aluminio', 'AluminioController@store')->name('aluminio.store');
create.blade.php
@section('contenido')
<div class="content-fluid">
<div class="row justify-content-center">
<form action="{{ route("aluminio.store") }}" method="post" enctype="multipart/form-data">
@csrf
<div class="col-10">
<div class="form-group">
<label for="tipologia" class="control-label">Tipología</label>
<input type="text" class="form-control" name="tipologia" id="tipologia">
</div>
<div class="form-group">
<label for="caracteristicas" class="control-label">Características</label><br>
<textarea name="caracteristicas" id="caracteristicas" cols="30" rows="10"></textarea>
</div>
<div class="form-group">
<label for="foto" class="control-label">Foto</label>
<input type="file" class="form-control" name="foto" id="foto">
</div>
<div class="form-group">
<button class="btn btn-primary" type="submit">Crear</button>
</div>
</div>
</form>
</div>
</div>
@endsection
show.blade.php
@section('contenido')
<div class="content-fluid">
<div class="jumbotron">
<div class="row">
<div class="col-6">
<img src="{{ asset('storage').'/'.$productos->foto }}" class="card-img-top" width="100" height="300" alt="...">
</div>
<div class="col-6">
<h1 class="display-4">{{ $productos->tipologia }}</h1>
<hr class="my-4">
<p class="lead">{{ $productos->caracteristicas}}</p>
<a class="btn btn-primary btn-lg" href="{{ route('aluminio') }}" role="button">Atras</a>
</div>
</div>
</div>
</div>
@endsection
【问题讨论】:
-
这个ID真的存在吗?尝试使用
$productos = Aluminio::findOrFail($id)来获取模型。 -
很可能您成功存储了图像文件,但是....检查文件名是否存储在数据库中。
-
检查您的桌子,我确定您的照片没有正确存储。存储您的照片名称,您不能将文件存储在表中(没有 bolb 数据)
-
图像已正确保存在数据库中,显示视图正常工作,它显示图像的所有数据,但是当我要创建新产品时,它给了我错误,如果我在视图中创建,这是我不明白的,因为它给了我一个显示视图错误
标签: laravel laravel-5 eloquent