Tôi có một thư mục có tên models
bên trong app/
nơi tôi đặt tất cả các lớp mô hình của mình. Bây giờ tôi muốn thay đổi thư mục nơi lệnh sau xuất ra các lớp được tạo raThư mục Mô hình Laravel 5
php artisan make:model SomeModel
Tôi có một thư mục có tên models
bên trong app/
nơi tôi đặt tất cả các lớp mô hình của mình. Bây giờ tôi muốn thay đổi thư mục nơi lệnh sau xuất ra các lớp được tạo raThư mục Mô hình Laravel 5
php artisan make:model SomeModel
Bạn không thể và nếu bạn đang nhảy vào phiên bản vũ trụ của Laravel, bạn không nên. Laravel 5 cung cấp, và giả định, một quy ước đặt tên PSR-4 cho tất cả các tệp lớp của nó. Điều này có nghĩa là các mô hình (và tất cả các lớp) nên được đặt dựa trên tên đầy đủ của họ là.
Khi bạn nói
php artisan make:model SomeModel
Bạn đang thực sự tạo ra một mô hình với tên đầy đủ của App\SomeModel
, vì vậy artisan
tạo ra các tập tin sau đây.
app/SomeModel.php
Nếu bạn nói
php artisan make:model 'Test\SomeModel'
bạn muốn được tạo ra một mô hình với đầy đủ tên App\Test\SomeModel
, và Laravel sẽ tạo ra các tập tin sau đây
app/Test/SomeModel.php
Vì vậy, của đầy đủ của nó mô hình của bạn tên lớp (bao gồm không gian tên) xác định vị trí tệp định nghĩa lớp.
tôi thấy nó nên là:
php artisan make:model ModelFolder\\SomeModel
thực sự nó sẽ có một dấu gạch chéo ngược –
không hoạt động với một dấu chéo ngược – fdrv
Điều đó rất có thể phụ thuộc vào thiết bị đầu cuối của bạn ...? –
Nếu bạn muốn tạo mô hình bằng tay trên thư mục cụ thể. Ví dụ nếu bạn muốn tạo mô hình info
vào thư mục Models
. Tạo tệp có tên info.php
các thư mục bên trong Mô hình mà bạn đã tạo trước đó. Dưới đây là bạn nên viết mã như thế này trong info.php
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Info extends Model
{
// your code
protected $table = 'tb_users';
}
Tất nhiên bạn cũng có thể sử dụng Artisan lệnh php artisan make:model "Models\Info"
Nếu bạn muốn gọi mô hình mà Info
bạn tạo một cái nhìn
<?php
$users = App\Models\Info::all();
foreach ($users as $user) {
echo $user->name;
}
Nó sẽ hiển thị tất cả tên của người dùng
Tôi đã thử điều này trong Laravel 5 và khi đưa ra một đường dẫn cho Mod el tập tin, tôi đã phải đề cập đến con đường mà không có dấu nháy đơn như bạn đã đề cập. Điều này làm việc cho tôi: 'php artisan make: model Test \ SomeModel' – Neel
@Alan: Có lý do cụ thể nào để xóa thư mục mô hình khỏi Laravel 5 không? – Ashish
@Ashish Tuân thủ các tiêu chuẩn PHP cho các không gian tên và tính nhất quán của việc có tất cả các lớp ứng dụng tự động tải theo cùng một cách. –