Tùy chọn lệnh Laravel không chấp nhận giá trị

Artisan là tên của giao diện dòng lệnh đi kèm với Laravel. Nó cung cấp một số lệnh hữu ích để bạn sử dụng trong khi phát triển ứng dụng của mình. Nó được điều khiển bởi thành phần Symfony Console mạnh mẽ. Để xem danh sách tất cả các lệnh Artisan có sẵn, bạn có thể sử dụng lệnh

php artisan make:console SendEmails --command=emails:send
4

php artisan list

Mỗi lệnh cũng bao gồm một màn hình "trợ giúp" hiển thị và mô tả các đối số và tùy chọn có sẵn của lệnh. Để xem màn hình trợ giúp, chỉ cần đặt trước tên của lệnh bằng

php artisan make:console SendEmails --command=emails:send
5

php artisan help migrate

viết lệnh

Ngoài các lệnh được cung cấp bởi Artisan, bạn cũng có thể tạo các lệnh tùy chỉnh của riêng mình để làm việc với ứng dụng của mình. Bạn có thể lưu trữ các lệnh tùy chỉnh của mình trong thư mục

php artisan make:console SendEmails --command=emails:send
6;

Để tạo một lệnh mới, bạn có thể sử dụng lệnh Artisan

php artisan make:console SendEmails --command=emails:send
8, lệnh này sẽ tạo ra một sơ khai lệnh để giúp bạn bắt đầu

php artisan make:console SendEmails

Lệnh trên sẽ tạo một lớp tại

php artisan make:console SendEmails --command=emails:send
9. Khi tạo lệnh, tùy chọn
drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
0 có thể được sử dụng để gán tên lệnh đầu cuối

php artisan make:console SendEmails --command=emails:send

Cấu trúc lệnh

Sau khi lệnh của bạn được tạo, bạn nên điền vào các thuộc tính

drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
1 và
drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
2 của lớp, các thuộc tính này sẽ được sử dụng khi hiển thị lệnh của bạn trên màn hình
php artisan make:console SendEmails --command=emails:send
4

Phương thức

drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
4 sẽ được gọi khi lệnh của bạn được thực thi. Bạn có thể đặt bất kỳ logic lệnh nào trong phương thức này. Hãy xem một lệnh ví dụ

Lưu ý rằng chúng tôi có thể đưa bất kỳ phụ thuộc nào chúng tôi cần vào hàm tạo của lệnh. Bộ chứa dịch vụ Laravel sẽ tự động thêm tất cả các loại phụ thuộc được gợi ý trong hàm tạo. Để có khả năng sử dụng lại mã tốt hơn, cách tốt nhất là giữ cho các lệnh trên bảng điều khiển của bạn nhẹ và để chúng chuyển sang các dịch vụ ứng dụng để hoàn thành nhiệm vụ của chúng

drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}

Lệnh vào/ra

Xác định kỳ vọng đầu vào

Khi viết các lệnh trên bàn điều khiển, thông thường sẽ thu thập thông tin đầu vào từ người dùng thông qua các đối số hoặc tùy chọn. Laravel làm cho việc xác định đầu vào mà bạn mong đợi từ người dùng trở nên rất thuận tiện bằng cách sử dụng thuộc tính

drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
1 trên các lệnh của bạn. Thuộc tính
drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
1 cho phép bạn xác định tên, đối số và tùy chọn cho lệnh theo một cú pháp đơn, biểu cảm, giống như tuyến đường

Tất cả các đối số và tùy chọn do người dùng cung cấp được đặt trong dấu ngoặc nhọn. Trong ví dụ sau, lệnh xác định một đối số bắt buộc.

drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
7

php artisan list
9

Bạn cũng có thể đặt đối số tùy chọn và xác định giá trị mặc định cho đối số tùy chọn

php artisan make:console SendEmails --command=emails:send
0

Các tùy chọn, giống như đối số, cũng là một dạng đầu vào của người dùng. Tuy nhiên, chúng có tiền tố là hai dấu gạch ngang (

drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
8) khi chúng được chỉ định trên dòng lệnh. Chúng tôi có thể xác định các tùy chọn trong chữ ký như vậy

php artisan make:console SendEmails --command=emails:send
2

Trong ví dụ này, công tắc

drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
9 có thể được chỉ định khi gọi lệnh Artisan. Nếu công tắc
drip = $drip;
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->drip->send(User::find($this->argument('user')));
    }
}
9 được thông qua, giá trị của tùy chọn sẽ là
php artisan list
91. Nếu không, giá trị sẽ là
php artisan list
92

php artisan make:console SendEmails --command=emails:send
7

Bạn cũng có thể chỉ định rằng tùy chọn sẽ được người dùng chỉ định một giá trị bằng cách thêm vào tên tùy chọn một ký hiệu

php artisan list
93, cho biết rằng một giá trị sẽ được cung cấp

php artisan make:console SendEmails --command=emails:send
9

Trong ví dụ này, người dùng có thể chuyển một giá trị cho tùy chọn như vậy

php artisan help migrate
0

Bạn cũng có thể gán các giá trị mặc định cho các tùy chọn

php artisan help migrate
1

Để gán một phím tắt khi xác định một tùy chọn, bạn có thể chỉ định nó trước tên tùy chọn và sử dụng một. dấu phân cách để tách phím tắt khỏi tên tùy chọn đầy đủ

php artisan help migrate
2

Nếu bạn muốn xác định các đối số hoặc tùy chọn để mong đợi đầu vào mảng, bạn có thể sử dụng ký tự

php artisan list
94

php artisan help migrate
3

Mô tả đầu vào

Bạn có thể gán mô tả cho các đối số và tùy chọn đầu vào bằng cách tách tham số khỏi mô tả bằng dấu hai chấm

php artisan help migrate
4

Truy xuất đầu vào

Trong khi lệnh của bạn đang thực thi, rõ ràng bạn sẽ cần truy cập các giá trị cho các đối số và tùy chọn được lệnh của bạn chấp nhận. Để làm như vậy, bạn có thể sử dụng các phương pháp

php artisan list
95 và
php artisan list
96

php artisan help migrate
5

Nếu bạn cần truy xuất tất cả các đối số dưới dạng

php artisan list
97, hãy gọi
php artisan list
95 không có tham số

php artisan help migrate
6

Các tùy chọn có thể được truy xuất dễ dàng như các đối số bằng phương thức

php artisan list
96. Giống như phương thức
php artisan list
95, bạn có thể gọi
php artisan list
96 mà không có bất kỳ tham số nào để truy xuất tất cả các tùy chọn dưới dạng một
php artisan list
97

php artisan help migrate
7

Nếu đối số hoặc tùy chọn không tồn tại,

php artisan make:console SendEmails --command=emails:send
03 sẽ được trả về

Nhắc nhập liệu

Ngoài việc hiển thị đầu ra, bạn cũng có thể yêu cầu người dùng cung cấp thông tin đầu vào trong quá trình thực thi lệnh của bạn. Phương thức

php artisan make:console SendEmails --command=emails:send
04 sẽ nhắc người dùng với câu hỏi đã cho, chấp nhận đầu vào của họ và sau đó trả lại đầu vào của người dùng cho lệnh của bạn

php artisan help migrate
8

Phương thức

php artisan make:console SendEmails --command=emails:send
05 tương tự như
php artisan make:console SendEmails --command=emails:send
04, nhưng đầu vào của người dùng sẽ không hiển thị với họ khi họ nhập vào bảng điều khiển. Phương pháp này hữu ích khi yêu cầu thông tin nhạy cảm như mật khẩu

php artisan help migrate
9

Yêu cầu xác nhận

Nếu bạn cần yêu cầu người dùng xác nhận đơn giản, bạn có thể sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
07. Theo mặc định, phương thức này sẽ trả về
php artisan list
92. Tuy nhiên, nếu người dùng nhập
php artisan make:console SendEmails --command=emails:send
09 để phản hồi lời nhắc, phương thức sẽ trả về
php artisan list
91

php artisan make:console SendEmails
0

Cho người dùng lựa chọn

Phương pháp

php artisan make:console SendEmails --command=emails:send
21 có thể được sử dụng để cung cấp tính năng tự động hoàn thành cho các lựa chọn có thể. Người dùng vẫn có thể chọn bất kỳ câu trả lời nào, bất kể gợi ý tự động hoàn thành

php artisan make:console SendEmails
1

Nếu bạn cần cung cấp cho người dùng một tập hợp các lựa chọn được xác định trước, bạn có thể sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
22. Người dùng chọn chỉ mục của câu trả lời, nhưng giá trị của câu trả lời sẽ được trả lại cho bạn. Bạn có thể đặt giá trị mặc định được trả về nếu không có gì được chọn

php artisan make:console SendEmails
2

Viết đầu ra

Để gửi đầu ra tới bàn điều khiển, hãy sử dụng các phương thức ________ 223, ________ 224, ________ 225, _______ 226 và

php artisan make:console SendEmails --command=emails:send
27. Mỗi phương pháp này sẽ sử dụng các màu ANSI thích hợp cho mục đích của chúng

Để hiển thị thông báo thông tin cho người dùng, hãy sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
24. Thông thường, điều này sẽ hiển thị trong bảng điều khiển dưới dạng văn bản màu xanh lá cây

php artisan make:console SendEmails
3

Để hiển thị thông báo lỗi, hãy sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
27. Văn bản thông báo lỗi thường được hiển thị bằng màu đỏ

php artisan make:console SendEmails
4

Nếu bạn muốn hiển thị đầu ra của bàn điều khiển đơn giản, hãy sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
23. Phương thức
php artisan make:console SendEmails --command=emails:send
23 không nhận được bất kỳ màu duy nhất nào

php artisan make:console SendEmails
5

Bố cục bảng

Phương thức

php artisan make:console SendEmails --command=emails:send
72 giúp dễ dàng định dạng chính xác nhiều hàng/cột dữ liệu. Chỉ cần chuyển các tiêu đề và hàng cho phương thức. Chiều rộng và chiều cao sẽ được tính toán động dựa trên dữ liệu đã cho

php artisan make:console SendEmails
6

Thanh tiến trình

Đối với các tác vụ chạy trong thời gian dài, có thể hữu ích khi hiển thị chỉ báo tiến độ. Sử dụng đối tượng đầu ra, chúng ta có thể bắt đầu, tiến và dừng Thanh tiến trình. Bạn phải xác định số bước khi bắt đầu tiến trình, sau đó chuyển tiếp Thanh tiến trình sau mỗi bước

php artisan make:console SendEmails
7

Để biết thêm các tùy chọn nâng cao, hãy xem tài liệu thành phần Symfony Progress Bar

Đăng ký lệnh

Sau khi lệnh của bạn kết thúc, bạn cần đăng ký lệnh đó với Artisan để lệnh có sẵn để sử dụng. Điều này được thực hiện trong tệp

php artisan make:console SendEmails --command=emails:send
73

Trong tệp này, bạn sẽ tìm thấy danh sách các lệnh trong thuộc tính

php artisan make:console SendEmails --command=emails:send
74. Để đăng ký lệnh của bạn, chỉ cần thêm tên lớp vào danh sách. Khi Artisan khởi động, tất cả các lệnh được liệt kê trong thuộc tính này sẽ được giải quyết bởi bộ chứa dịch vụ và được đăng ký với Artisan

php artisan make:console SendEmails
8

Gọi lệnh qua mã

Đôi khi bạn có thể muốn thực thi lệnh Artisan bên ngoài CLI. Ví dụ: bạn có thể muốn kích hoạt lệnh Artisan từ tuyến đường hoặc bộ điều khiển. Bạn có thể sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
75 trên mặt tiền
php artisan make:console SendEmails --command=emails:send
76 để thực hiện việc này. Phương thức
php artisan make:console SendEmails --command=emails:send
75 chấp nhận tên của lệnh làm đối số đầu tiên và một mảng tham số lệnh làm đối số thứ hai. Mã thoát sẽ được trả lại

php artisan make:console SendEmails
9

Sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
78 trên mặt tiền
php artisan make:console SendEmails --command=emails:send
76, bạn thậm chí có thể xếp hàng các lệnh của Artisan để chúng được xử lý trong nền bởi nhân viên xếp hàng của bạn

php artisan make:console SendEmails --command=emails:send
0

Nếu bạn cần chỉ định giá trị của một tùy chọn không chấp nhận giá trị chuỗi, chẳng hạn như cờ

php artisan make:console SendEmails --command=emails:send
90 trên lệnh
php artisan make:console SendEmails --command=emails:send
91, bạn có thể chuyển một giá trị boolean
php artisan list
91 hoặc
php artisan list
92

php artisan make:console SendEmails --command=emails:send
1

Gọi lệnh từ các lệnh khác

Đôi khi bạn có thể muốn gọi các lệnh khác từ lệnh Artisan hiện có. Bạn có thể làm như vậy bằng cách sử dụng phương pháp

php artisan make:console SendEmails --command=emails:send
75. Phương thức
php artisan make:console SendEmails --command=emails:send
75 này chấp nhận tên lệnh và một mảng tham số lệnh

php artisan make:console SendEmails --command=emails:send
2

Nếu bạn muốn gọi một lệnh console khác và chặn tất cả đầu ra của nó, bạn có thể sử dụng phương thức

php artisan make:console SendEmails --command=emails:send
96. Phương thức
php artisan make:console SendEmails --command=emails:send
96 có cùng chữ ký với phương thức
php artisan make:console SendEmails --command=emails:send
75

Làm cách nào để chạy một lệnh trong Laravel?

Phương thức lệnh chấp nhận hai đối số. chữ ký lệnh và bao đóng nhận các đối số và tùy chọn của lệnh. .
nghệ nhân. lệnh ('thư. gửi {người dùng}', chức năng ($ người dùng) {
$this->info("Đang gửi email tới. {$người dùng}. ");

Làm cách nào để chạy lệnh tùy chỉnh trong Laravel?

Dưới đây là các bước để tạo một lệnh thủ công mới. .
Bước 1. Tạo một ứng dụng Laravel mới. laravel tùy chỉnh mới
Bước 2. Tạo một lệnh. sử dụng làm cho. command command để tạo một command mới. Chỉ cần nhập tên lệnh, như vậy. nghệ nhân php làm. lệnh CheckUsers

Làm cách nào để chạy dự án Laravel bằng cmd?

laravellocal. md .
Tạo một cơ sở dữ liệu có tên cục bộ là homestead utf8_General_ci
Kéo dự án Laravel/php từ nhà cung cấp git
Đổi tên. .
Mở bàn điều khiển và cd thư mục gốc dự án của bạn
Chạy cài đặt trình soạn thảo hoặc trình soạn thảo php. .
Chạy khóa thủ công php. phát ra
Chạy php artisan di chuyển
Chạy php artisan db. hạt giống để chạy máy gieo hạt, nếu có

Làm cách nào để đăng ký lệnh trong Laravel?

Bạn chỉ cần đặt lớp lệnh của mình vào $this->commands([]); . Tài liệu về Laravel cho biết "Hầu hết các nhà cung cấp dịch vụ đều có đăng ký và phương thức khởi động. Trong phương thức đăng ký, bạn chỉ nên ràng buộc mọi thứ vào vùng chứa dịch vụ. . The Laravel documentation says "Most service providers contain a register and a boot method. Within the register method, you should only bind things into the service container.