[英]Error Call to a member function getClientOriginalName() on null
因此,在我的 web 表單上上傳圖像時出現錯誤,這是代碼:
public function newStoreBlog(Request $request)
{
$this->validate($request,[
'title' => ['required', 'string', 'max:255'],
'category' => ['required'],
'image' => ['required'],
'description' => ['required','string'],
]);
$photoFile = $request->file('image');
Storage::putFileAs('public/photos',$photoFile, $photoFile->getClientOriginalName());
Article::create([
'user_id' => Auth::user()->id,
'category_id' => $request->input('category')->id,
'title' => $request->title,
'image' => $request->file('image')->getClientOriginalName(),
'description' => $request->description,
]);
這是我在 web.php 上的路線
Route::post('/myblog/new/store', 'HomeController@newStoreBlog');
這是我的刀片形式
<div class="form-group row">
<label for="image" class="col-md-4 col-form-label text-md-right">{{ __('Photo') }}</label>
<div class="col-md-6">
<input id="image" type="file" accept="image/png, image/jpg, image/jpeg" class="form-control @error('image') is-invalid @enderror" name="image" value="{{ old('image') }}" required autocomplete="image" autofocus>
@error('image')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
顯示圖像為 null 的錯誤,我該如何解決?
你的 Controller 應該是這樣的。
public function newStoreBlog(Request $request)
{
$this->validate($request,[
'title' => ['required', 'string', 'max:255'],
'category' => ['required'],
'image' => ['required'],
'description' => ['required','string'],
]);
$fileName = null;
if($request->hasFile('image')){
$photoFile = $request->file('image');
$fileName = $photoFile->getClientOriginalName();
Storage::putFileAs('public/photos',$photoFile, $fileName);
}
Article::create([
'user_id' => Auth::user()->id,
'category_id' => $request->input('category_id'),
'title' => $request->title,
'image' => $fileName,
'description' => $request->description,
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.