Laravel artisan命令php artisan make:导入没有定义,你是说这个吗[关闭]

vh0rcniy  于 2023-05-27  发布在  PHP
关注(0)|答案(2)|浏览(265)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
10个月前就关门了。
Improve this question
如何解决“Command 'make:import' is not defined”错误,当我试图创建一个导入类导入一个Excel文件在Laravel?
我正在做一个Laravel项目,我需要导入一个Excel文件。为了实现这一点,我遵循了以下步骤:
1.我在app目录中创建了imports文件夹。
1.运行php artisan make:import BankTransfersHistoryImport --model=BankTransfersHistory命令。
但是,我遇到了以下错误:

ERROR  Command "make:import" is not defined. Did you mean one of these?
⇂ make:cast  
 ⇂ make:channel
 ⇂ make:command
 ⇂ make:component
 ⇂ make:controller
 ⇂ make:event
 ⇂ make:exception
 ⇂ make:factory
 ⇂ make:job
 ⇂ make:listener
 ⇂ make:mail
 ⇂ make:middleware
 ⇂ make:migration
 ⇂ make:model
 ⇂ make:notification
 ⇂ make:observer
 ⇂ make:policy
 ⇂ make:provider
 ⇂ make:request
 ⇂ make:resource
 ⇂ make:rule
 ⇂ make:scope
 ⇂ make:seeder
 ⇂ make:test
6tqwzwtp

6tqwzwtp1#

Laravel从来没有默认内置make:import命令。我想你可能指的是Laravel Excel包,它在artisan控制台中添加了importexport命令。

导入命令:php artisan make:import UsersImport --model=User
导出命令:php artisan make:export UsersExport --model=User

按照installations步骤操作:

  • 运行composer require maatwebsite/excel
  • 应自动发现提供程序和Facede

关注**"5 minute quick start":**

使用此命令创建导入类php artisan make:import UsersImport --model=User,其中**“UsersImport”**将是类(和文件)名称,User是要导入的模型名称。该文件将在文件夹app/Imports中创建。
创建的文件看起来像这样:

<?php

namespace App\Imports;

use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;

class UsersImport implements ToModel
{
    /**
     * @param array $row
     *
     * @return User|null
     */
    public function model(array $row)
    {
        // Here, you must match your model's attributes
        // with the columns in the imported file.
        // Every row will create a new User record in your database
        return new User([
           'name'     => $row[0], // First column
           'email'    => $row[1], // Second column
           'password' => Hash::make($row[2]), // Third column
        ]);
    }
}

在您的控制器中,您现在可以调用此导入:

use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel; // Laravel excel Facade
use App\Imports\UsersImport; // Import logic

class UsersController extends Controller 
{
    public function import() 
    {
        // the "users.xlsx" is the path to the file you want to import
        // If you're uploading the file with a form
        // you can pass the uploaded file directly with resquest()->file
        // ("file" is the name of the input type "file" in your form)

        Excel::import(new UsersImport, 'users.xlsx');
        
        return redirect('/')->with('success', 'All good!');
    }
}

如果这将是一个“公共”上传表单,请记住始终验证用户上传的任何文件的安全性…

4bbkushb

4bbkushb2#

make:import命令不存在,如果你想添加一个文件夹来保存外部文件,我建议你使用php artisan storage:link命令,它创建一个符号链接,外部文件保存在那里。
您可以查看文档https://laravel.com/docs/9.x/filesystem

相关问题