Php 如何在laravel用户mysql数据库行中附加/上传更多图像,其中有过去上传的图像

Php 如何在laravel用户mysql数据库行中附加/上传更多图像,其中有过去上传的图像,php,mysql,laravel,forms,image,Php,Mysql,Laravel,Forms,Image,请帮助我,在拉威尔,我有一个数据库,在那里我有用户和病人。在patients表中,我有一个“image”行,我将多个图像上传到那里,它们的名称用“|”内插,目录是/images patients。这一切都很好,但我有一个问题,当我想让用户附加更多的图像到当前患者,使他们更多。在PatientController的更新功能中,我对表单使用了相同的代码,用于附加更多图像,当我想将图像附加到患者时,它会删除旧图像并用新上载的图像替换它们。在提交表单时,我如何通过在数组中添加更多图像(由“|”内爆)来附

请帮助我,在拉威尔,我有一个数据库,在那里我有用户和病人。在patients表中,我有一个“image”行,我将多个图像上传到那里,它们的名称用“|”内插,目录是/images patients。这一切都很好,但我有一个问题,当我想让用户附加更多的图像到当前患者,使他们更多。在PatientController的更新功能中,我对表单使用了相同的代码,用于附加更多图像,当我想将图像附加到患者时,它会删除旧图像并用新上载的图像替换它们。在提交表单时,我如何通过在数组中添加更多图像(由“|”内爆)来附加更多图像,而不删除先前上传给患者的图像?这是我的密码:

patient.blade.php

   <div class="card-header">Attach image to a patient {{ $patient -> name }} <span class="float-right" id="close-edit-details-modal" style="cursor:pointer;"><b>X</b></span>
    </div>
  <div class="card-body">
        {{-- Forms --}}
    <form action="{{ route('admin.patients.update') }}" enctype="multipart/form-data" method="POST">
      @csrf
  @method("PUT")
        <input type="text" name="id" value="{{ $patient -> id }}" hidden>

        <div class="form-group">

            <label for="image">Image</label>
            <input type="file" multiple="multiple" name="image[]" />
        </div>


                   <input type="submit" class="btn btn-primary btn" value="Attach the image">

        </form>
web.php

Auth::routes();

Route::middleware('auth', 'isAdmin')->namespace('admin')->group(function(){

    Route::get('/users', 'UsersController@index')->name('admin.users');
    Route::get('/admin/settings', 'SettingsController@index')->name('admin.settings');
    Route::get('/admin/user/{id}', 'UsersController@getUser')->name('admin.user');
    Route::get('/admin/patients', 'PatientController@index')->name('admin.patients');
    Route::get('/admin/patient/{id}', 'PatientController@show')->name('admin.patient');
    Route::get('/admin/blank', 'BlankController@index')->name('admin.blank');

    Route::get('/admin/patients/search', 'PatientController@searchPatients')->name('admin.patients.search');
    Route::get('/admin/patients/usearch', 'PatientController@searchUsers')->name('admin.patients.usearch');

Route::put('/admin/patients/update', 'PatientController@update')->name('admin.patients.update');
    Route::post('/admin/users/store', 'UsersController@store')->name('admin.user.store');
    Route::post('/admin/patients/store', 'PatientController@store')->name('admin.patients.store');
    Route::put('/admin/user/update', 'UsersController@update')-> name('admin.user.update');
});



Route::get('/', 'HomeController@index')->name('home');



需要在PatientController中进行一点更改,以获得所需的结果

公共功能更新(请求$Request)
{
$request->validate([
'图像'=>'必需',
]);
$destinationPath='./images patients/';
$images=array();
如果($files=$request->file('image')){
foreach($files作为$file){
$filename=$file->getClientOriginalName();
$file->move($destinationPath,$filename);
$images[]=$filename;
}
}
$allImages=内爆(“|”,$images);
$patient=patient::find($request->id);
//将新上载文件的名称附加到现有值
$patient->image.=“|$allImages”;
$patient->save();
返回重定向('admin/patient/'.$patient->id)->带有('success','Successfully attached photos to a patient!');
}

尝试替换
$patient->image=$allImages带有
$patient->image.=“|$allImages”好吧,现在它实际上放置了文件的名称,它没有删除旧的文件,但它只显示集合中最后上传的图片,等等,再加上它更改了文件的名称,看看这张图片和没有显示的图片的名称:你知道如何通过机会修复它吗代码是什么(刀片)你评论中链接的屏幕截图?你能在这里发布代码吗?你好,你的代码工作正常,它工作得很好,我替换了$patient->image=$allImages;使用$patient->image.=“|$allImages”;现在一切都好了,正是我想要的。非常感谢你!伟大的因此,我们会将解决方案发布为答案,您可以将其标记为已接受/投票,以方便后续访问者。
Auth::routes();

Route::middleware('auth', 'isAdmin')->namespace('admin')->group(function(){

    Route::get('/users', 'UsersController@index')->name('admin.users');
    Route::get('/admin/settings', 'SettingsController@index')->name('admin.settings');
    Route::get('/admin/user/{id}', 'UsersController@getUser')->name('admin.user');
    Route::get('/admin/patients', 'PatientController@index')->name('admin.patients');
    Route::get('/admin/patient/{id}', 'PatientController@show')->name('admin.patient');
    Route::get('/admin/blank', 'BlankController@index')->name('admin.blank');

    Route::get('/admin/patients/search', 'PatientController@searchPatients')->name('admin.patients.search');
    Route::get('/admin/patients/usearch', 'PatientController@searchUsers')->name('admin.patients.usearch');

Route::put('/admin/patients/update', 'PatientController@update')->name('admin.patients.update');
    Route::post('/admin/users/store', 'UsersController@store')->name('admin.user.store');
    Route::post('/admin/patients/store', 'PatientController@store')->name('admin.patients.store');
    Route::put('/admin/user/update', 'UsersController@update')-> name('admin.user.update');
});



Route::get('/', 'HomeController@index')->name('home');