如何在laravel excel上传中考虑到唯一规则中的现有id


<?php
namespace AppImports;
use AppModelsCustomer;
use IlluminateSupportCollection;
use MaatwebsiteExcelConcernsToCollection;
use MaatwebsiteExcelConcernsWithHeadingRow;
use MaatwebsiteExcelConcernsWithValidation;

class CustomerImport implements ToCollection, WithHeadingRow, WithValidation
{
public $timestamps = false;


public function collection(Collection $rows)
{
foreach ($rows as $row) {

Customer::create([
'name'     => $row['name'],

]);

}
}

public function rules(): array
{
return [
'name'      => [
'required',
'max:50',
'unique:customers,name',
],


];
}
}

我的控制器代码如下:

public function uploadFile(Request $request)
{
$request->validate(
['file' => ['required', 'file', 'mimes:txt,csv']],
['file.required' => 'Please upload the file']
);
try {
Excel::import(new CustomerImport(), $request->file('file'));
} catch (MaatwebsiteExcelValidatorsValidationException $e) {
$failures = $e->failures();
return redirect()
->route('customers.upload')
->withErrors($failures);
}
return redirect()
->route('customers.index')
->with('success', __('customers.message_uploaded'));
}

我创建了一个客户,然后想更改其名称。我该怎么做?我无法上传相同的名称。因为它不会是独一无二的。因此,在尝试唯一性时,我需要考虑id。我不确定在验证过程中如何做到这一点。如有任何帮助,将不胜感激

从外观上看,您没有以任何方式存储选择,因此在页面刷新后,服务器无法知道如何呈现通过Javascript操作完成的结果。

将更改存储在cookie、会话或本地存储中,然后在渲染时检索数据。

最新更新