長話短說,我的 Larvel 8 (Jetstream) 應用程式中有一個名為 Board 的模型。我正在嘗試為這個 Board 模型生成一個工廠。
當我使用以下任一命令時:
php artisan make:factory BoardFactory
或者
php artisan make:factory BoardFactory --model=Board
我得到了一個看似沒有錯誤或問題的工廠類。但是,當我打開該類時,它與模型無關。
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
class BoardFactory extends Factory{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
//
];
}
}
我已經對我的應用程式中的所有模型進行了嘗試,并且這種情況仍然存在。再次沒有錯誤說找不到模型。該命令看似成功運行,但顯然沒有為模型生成工廠。
我知道如果需要,我可以輕松地手動撰寫它,但我想了解為什么這不起作用以及如何修復它。我越快通過我的測驗......越好:)
在此先感謝您的幫助。
uj5u.com熱心網友回復:
嘗試發布您的 Laravel 存根并確認存根檔案內容按預期定義。
- 發布存根。
php artisan stub:publish
- 這應該在根專案目錄中創建一個/stubs檔案夾。
- 在該檔案夾中,您將看到所有存根。
- 最具體地說,打開名為的存根檔案
factory.stub
- 它的檔案內容應該類似于:
<?php
namespace {{ factoryNamespace }};
use Illuminate\Database\Eloquent\Factories\Factory;
use {{ namespacedModel }};
class {{ factory }}Factory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = {{ model }}::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
//
];
}
}
筆記:
從它的外觀來看,您當前的工廠存根似乎缺少以下部分:
// ...
use {{ namespacedModel }};
// ...
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = {{ model }}::class;
// ...
理想情況下,在正常(默認)情況下,運行生成帶有鏈接模型的工廠的命令應該如下所示:
命令:
php artisan make:factory BoardFactory --model=Board
預期輸出檔案(database/factories/BoardFactory.php):
<?php
namespace Database\Factories;
use App\Models\Board;
use Illuminate\Database\Eloquent\Factories\Factory;
class BoardFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Board::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
//
];
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/379107.html
標籤:php 拉拉维尔 网络 laravel-8 laravel-工匠
