代码之家  ›  专栏  ›  技术社区  ›  Mike Ross B.Kocis

Laravel Excel返回所有行的必需错误

  •  0
  • Mike Ross B.Kocis  · 技术社区  · 6 年前

    Laravel-Excel 在我的项目中,无法找出验证。

    我试着上传 xlsx required 错误。

    下面是我的 EventResultImport

    namespace App\Imports;
    
    use App\Models\Data\EventResult;
    use Maatwebsite\Excel\Concerns\Importable;
    use Maatwebsite\Excel\Concerns\ToModel;
    use Maatwebsite\Excel\Concerns\WithHeadingRow;
    use Maatwebsite\Excel\Concerns\WithValidation;
    use Maatwebsite\Excel\Imports\HeadingRowFormatter;
    
    class EventResultImport implements ToModel, WithValidation, WithHeadingRow
    {
        use Importable;
    
        public function model(array $row)
        {
            HeadingRowFormatter::default('none');
    
            return new EventResult([
                'event_id' => $row[0],
                'event_name' => $row[1],
            ]);
        }
    
        public function rules(): array
        {
            return [
                //'EventId' => 'required|numeric', Tried this
                //'*.EventId' => 'required|numeric', Tried this
                '0' => 'required|numeric'
    
            ];
        }
    }
    

    如果列中有数字数据,则在第二行事件中出现错误 EventId

    enter image description here

    谢谢你

    1 回复  |  直到 6 年前
        1
  •  1
  •   Arthur Samarcos    6 年前

    您正在实现WithHeadingRow,因此属性必须匹配:

    public function rules(): array
    {
        return [
            'event_id' => 'required|numeric'
        ];
    }
    

    要跳过空值:

    public function model(array $row)
    {
        if (!isset($row[0])) {
            return null;
        }
    
        return new User([
            'name' => $row[0],
        ]);
    }
    
    推荐文章