无效的日期时间格式:1366第1行的列`laravel_content_excel`.`projects`.`product_id`的整数值不正确:'[1]'(sql:INSERT INTO`pr [英] Invalid datetime format: 1366 Incorrect integer value: '[1]' for column `laravel_content_excel`.`projects`.`product_id` at row 1 (SQL:insert into `pr

查看:16
本文介绍了无效的日期时间格式:1366第1行的列`laravel_content_excel`.`projects`.`product_id`的整数值不正确:'[1]'(sql:INSERT INTO`pr的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里我有3个表,分别名为User、Products和Projects。表用户和产品具有一对多的关系。每个用户可以拥有多个产品,并且产品都有自己的ID。表产品和项目具有一对多的关系。每个产品都可以有多个项目。表USERS将列USER_ID作为外键。其中,user_id=用户的ID。和表项目有两个外键,分别名为user_id和product_id。其中,user_id=用户的id,product_id=产品的id。 在这里,我可以注册一个用户并在该用户下创建产品。

现在,在步骤2中,我希望在Projects表中上载一个Excel文件。在Projects表中,列product_id=Products表的id,User_id=USERS表的id。当我尝试执行此操作时,出现以下错误:-

SQLSTATE[22007]:日期时间格式无效:1366列<[2-0]..[2-1]..第1行(SQL:INSERT INTO<[2-4],<[2-5],title_1description_1image_1image_2image_3title_2,<[2-12],title_3description_3video_1video_2video_3user_idproduct_idupdated_atcreated_at)值(第1章,子1,标题1,Desp 1,img 1,img 2,img 3,ti 2,des 2,ti3,des 3,v1,vdo2,vdo3,1,[1,2,3])值2021-06-10 09:58:43,2021-06-10 09:58:43)

我在这里创建了3个产品,其中id为1、2、3。您可以看到product_id取了所有产品的值,但当我上传Excel文件时,它应该只取一个产品的值。

我认为project tController.php和ImportProject.php中存在问题 This is My ProjectController.php

class ProjectController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        // $projects = Project::where('user_id',auth()->user()->id)->latest()->paginate(20);
        // $projects = Project::where('user_id',auth()->user()->id)->where('product_id')->latest()->paginate(20);
        // $projects = Project::where('user_id',auth()->user()->id)->latest('product_id',8) ->paginate(20);
        // $projects = Project::whereIn('product_id',Product::where('user_id',Auth::id())->pluck('id')->toArray())->latest();
        // $projects = Project::whereIn('product_id',Product::where('user_id',Auth::id())->pluck('id')->toArray())->latest()->paginate(20);

        $projects = Project::whereIn('product_id',Product::where('user_id',Auth::id())->pluck('id')->toArray())->latest()->paginate(20);


        return view('projects.index', compact('projects'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        return view('projects.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {
        $request->validate([
            'chapter_name' => 'required',
            'sub_section_name' => 'required',
            'title_1' => 'required',
            'description_1' => 'required',
            'image_1' => 'required',
            'image_2' => 'required',
            'image_3' => 'required',
            'title_2' => 'required',
            'description_2' => 'required',
            'title_3' => 'required',
            'description_3' => 'required',
            'video_1' => 'required',
            'video_2' => 'required',
            'video_3' => 'required',
        ]);

        // $input = $request->all();
        // $input['user_id'] = auth()->user()->id;
        // $input['product_id'] = $id;
        $input = Project::whereIn('product_id',Product::where('user_id',Auth::id())->pluck('id'));


        Project::create($input);

        return redirect()->route('project.index')
                        ->with('success','Product created successfully.');

    }

    /**
     * Display the specified resource.
     *
     * @param  AppModelsProject  $project
     * @return IlluminateHttpResponse
     */
    public function show(Project $project)
    {
        // $category = $project->category;
        return view('projects.show', compact('project'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  AppModelsProject  $project
     * @return IlluminateHttpResponse
     */
    public function edit(Project $project)
    {
        return view('projects.edit', compact('project'));
    }
    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  AppModelsProject  $project
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, Project $project)
    {
        // $user_id =  Auth::user()->id ;

        $request->validate([
            'chapter_name' => 'required',
            'sub_section_name' => 'required',
            'title_1' => 'required',
            'description_1' => 'required',
            'image_1' => 'required',
            'image_2' => 'required',
            'image_3' => 'required',
            'title_2' => 'required',
            'description_2' => 'required',
            'title_3' => 'required',
            'description_3' => 'required',
            'video_1' => 'required',
            'video_2' => 'required',
            'video_3' => 'required',
        ]);

        $input = $request->all();

        $project->update($input);

        return redirect()->route('project.index')
                        ->with('success','Product updated successfully');
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  AppModelsProject  $project
     * @return IlluminateHttpResponse
     */
    public function destroy(Project $project)
    {
        $project->delete();

        return redirect()->route('projects.index')
            ->with('success', 'Project deleted successfully');
    }

    public function importProject()
    {
        Excel::import(new ProjectsImport, request()->file('file'));

        return back()->with('success','Project created successfully.');
    }

    public function export()
    {
        return Excel::download(new UsersExport, 'projects.xlsx');
    }
}

这是我的ImportProject.php

class ProjectsImport implements ToModel, WithHeadingRow
{

    public function __construct()
    {
        Project::truncate();
    }
    /**
     * @param array $row
     *
     * @return IlluminateDatabaseEloquentModel|null
     */
    public function model(array $row)
    {
        return new Project([
            'chapter_name'     => $row['chapter_name'],
            'sub_section_name'    => $row['sub_section_name'],
            'title_1'    => $row['title_1'],
            'description_1'    => $row['description_1'],
            'image_1'    => $row['image_1'],
            'image_2'    => $row['image_2'],
            'image_3'    => $row['image_3'],
            'title_2'    => $row['title_2'],
            'description_2'    => $row['description_2'],
            'title_3'    => $row['title_3'],
            'description_3'    => $row['description_3'],
            'video_1'    => $row['video_1'],
            'video_2'    => $row['video_2'],
            'video_3'    => $row['video_3'],
            'user_id'    => auth()->user()->id,
            'product_id'    => Product::where('user_id',Auth::id())->pluck('id')
            // 'product_id'    => Product::pluck('id')
            // 'product_id' => 2
        ]);
    }
}

感谢您的帮助:)

推荐答案

我在项目导入.php中使用了‘PRODUCT_id’=>;Product::where(‘User_id’,Auth::id())->;Pluuck(‘id’)->;last()

这篇关于无效的日期时间格式:1366第1行的列`laravel_content_excel`.`projects`.`product_id`的整数值不正确:&#39;[1]&#39;(sql:INSERT INTO`pr的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆