我有一個表格,其中包含 5 個檔案,名稱為 "feature_photo_1","feature_photo_2","feature_photo_3","feature_photo_4","feature_photo_5" 。因此,我嘗試使用 for 回圈來優化我的代碼。但是當我執行代碼時,它給了我錯誤
Call to a member function getClientOriginalExtension() on null
這是我的控制器代碼
# Insert feature_photos
for ($i=1; $i < 5; $i ) {
if($request->featured_photo_.$i)
{
$file = $request->file('featured_photo_'.$i);
$filename = date('YmdHi') . '.' . $file->getClientOriginalExtension();
$file->move(public_path('upload/featured_project/'), $filename);
$fphoto->featured_photo_.$i = $filename;
$fphoto->save();
}
}
$fphoto->save();
我懷疑我犯了一個錯誤,$file = $request->file('featured_photo_'.$i);但我不知道如何解決它。希望能得到你對這個問題的意見。提前謝謝您,任何回答/意見表示贊賞。
表格代碼
<form action="{{route('charity.profile.feat-project.new.store')}}" id="add_form" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group mb-3 row">
<!-- Project Name -->
<div class="col-md-9">
<label for="name" class="form-label">*Featured Project Name:</label>
<input type="text" class="form-control" name="name" id="name"
value="{{old('name')}}" placeholder="Enter name of the project">
@error('name')
<div hljs-string">">
{{ $message }}
</div>
@enderror
</div>
<!-- Cover Photo -->
<div hljs-number">3">
<div hljs-string">">
<label for="cover_photo" hljs-string">">
Cover Photo
<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Must not exceed 2mb." data-bs-original-title="yes">
<i hljs-string">"></i>
</span>
</label>
<input hljs-string">" name="cover_photo" id="cover_photo" type="file">
@error('cover_photo')
<div hljs-string">">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
<div hljs-number">3 row">
<div hljs-number">9 mb-3">
<div hljs-number">3">
<!-- Date of Activity -->
<div hljs-number">6">
<label for="started_on" hljs-string">">*Date of Activity:</label>
<input type="date" hljs-string">" name="started_on" id="started_on"
value="{{old('started_on')}}" placeholder="Enter date of the activity">
@error('started_on')
<div hljs-string">">
{{ $message }}
</div>
@enderror
</div>
<!-- No. of Beneficiaries -->
<div hljs-number">6">
<label for="total_beneficiaries" hljs-string">">No. of Beneficiaries (Optional):</label>
<input type="number" hljs-string">" name="total_beneficiaries" id="total_beneficiaries"
value="{{old('total_beneficiaries')}}" min="1" max="1000" placeholder="Choose between 1 to 1000...">
@error('total_beneficiaries')
<div hljs-string">">
{{ $message }}
</div>
@enderror
</div>
</div>
<div hljs-string">">
<!-- Sponsors -->
<div hljs-number">6">
<label for="sponsors" hljs-string">">Sponsors (Optional):</label>
<input type="text" hljs-string">" name="sponsors" id="sponsors"
value="{{old('sponsors')}}" placeholder="Enter sponsors...">
@error('sponsors')
<div hljs-string">">
{{ $message }}
</div>
@enderror
</div>
<!-- Venue -->
<div hljs-number">6">
<label for="venue" hljs-string">">Venue (Optional):</label>
<input type="text" hljs-string">" name="venue" id="venue"
value="{{old('venue')}}" placeholder="Enter venue of the project...">
@error('venue')
<div hljs-string">">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
<!-- Preview of Cover Photo -->
<div hljs-number">3">
<img id="show_cover_photo" hljs-string">" alt="Laravel 9:在 for 回圈中呼叫成員函式 getClientOriginalExtension()" src="{{ asset('backend/assets/images/placeholder-image.jpg') }}">
</div>
</div>
<div hljs-number">5 row">
<!-- Project Objective -->
<div hljs-number">6">
<label for="objective" hljs-string">">*Objective:</label>
<textarea id="elm1" rows="7" name="objective" placeholder="Enter your project's objective/s..."
maxlength="500">
{{old('objective')}}
</textarea>
@error('name')
<div >
{{ $message }}
</div>
@enderror
</div>
<!-- Thanksgiving Message -->
<div >
<label for="message" >Thanksgiving Message (Optional):</label>
<textarea id="elm2" rows="7" name="message" placeholder="Enter your thanksgiving message to the sponsors..."
maxlength="500">
{{old('message')}}
</textarea>
@error('name')
<div >
{{ $message }}
</div>
@enderror
</div>
</div>
<div >
<p >
<em>
Recommended image size is <strong>* 1920 x 380 </strong>
Must not exceed 2MB.
</em>
</p>
</div>
<div data-masonry='{"percentPosition": true }'>
<div >
<!-- Featured Photo 1 -->
<div >
<label for="featured_photo_1" >Featured Photo 1</label>
<input type="file" name="featured_photo_1" id="featured_photo_1" >
@error('featured_photo_1')
<div >
{{ $message }}
</div>
@enderror
<!-- Preview -->
<div>
<img id="showImage1" alt="Laravel 9:在 for 回圈中呼叫成員函式 getClientOriginalExtension()" src="{{ asset('backend/assets/images/placeholder-image.jpg') }}">
</div>
</div>
<!-- Featured Photo 2 -->
<div >
<label for="featured_photo_1" >Featured Photo 2</label>
<input type="file" name="featured_photo_2" id="featured_photo_2" >
@error('featured_photo_2')
<div >
{{ $message }}
</div>
@enderror
<!-- Preview -->
<div>
<img id="showImage2" alt="Laravel 9:在 for 回圈中呼叫成員函式 getClientOriginalExtension()" src="{{ asset('backend/assets/images/placeholder-image.jpg') }}">
</div>
</div>
<!-- Featured Photo 3 -->
<div >
<label for="featured_photo_3" >Featured Photo 3</label>
<input type="file" name="featured_photo_3" id="featured_photo_3" >
@error('featured_photo_3')
<div >
{{ $message }}
</div>
@enderror
<!-- Preview -->
<div>
<img id="showImage3" alt="Laravel 9:在 for 回圈中呼叫成員函式 getClientOriginalExtension()" src="{{ asset('backend/assets/images/placeholder-image.jpg') }}">
</div>
</div>
<!-- Featured Photo 4 -->
<div >
<label for="featured_photo_1" >Featured Photo 4</label>
<input type="file" name="featured_photo_4" id="featured_photo_4" >
@error('featured_photo_4')
<div >
{{ $message }}
</div>
@enderror
<!-- Preview -->
<div>
<img id="showImage4" alt="Laravel 9:在 for 回圈中呼叫成員函式 getClientOriginalExtension()" src="{{ asset('backend/assets/images/placeholder-image.jpg') }}">
</div>
</div>
<!-- Featured Photo 5 -->
<div >
<label for="featured_photo_5" >Featured Photo 5</label>
<input type="file" name="featured_photo_5" id="featured_photo_5" >
@error('featured_photo_5')
<div >
{{ $message }}
</div>
@enderror
<!-- Preview -->
<div>
<img id="showImage5" alt="Laravel 9:在 for 回圈中呼叫成員函式 getClientOriginalExtension()" src="{{ asset('backend/assets/images/placeholder-image.jpg') }}">
</div>
</div>
</div>
</div>
<div >
<ul >
<button type="button" data-bs-target="#bs-add-modal-center" data-bs-toggle="modal">
<i ></i> Submit
</button>
<a href="{{ url()->previous() }}">Cancel</a>
</ul>
</div>
<div >
<p >
<em>
<strong>*Featured projects are subject for approval by Caviom </strong>
before it can be displayed on your Charitable Organization's public profile.
The processing times for approval may usually take from 2 to 3 working days.
</em>
</p>
</div>
</form>
uj5u.com熱心網友回復:
要讀取動態屬性,您不能只.在此處使用:
$request->featured_photo_.$i
相反,您需要創建一個變數并在屬性呼叫中使用它:
$fileInputName = 'featured_photo_'.$i;
$request->$fileInputName;
您的第 5 個輸入將不會按原樣處理:
for ($i=1; $i < 5; $i ) {
只會去4。
完整代碼:
for ($i=1; $i < 6; $i ) {
$fileInputName = 'featured_photo_'.$i;
if($request->$fileInputName)
{
$file = $request->file($fileInputName);
$filename = date('YmdHi') . '.' . $file->getClientOriginalExtension();
$file->move(public_path('upload/featured_project/'), $filename);
$fphoto->$fileInputName = $filename;
$fphoto->save();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/514651.html
標籤:php拉拉维尔循环
