我们可以只将虚拟数据添加到 2 列,而将其他列保留在 Laravel 的工厂文件中吗?

问题描述

我这里有 2 列我只想添加虚拟数据,而不在我的模型工厂文件中包含其他列。那可能吗?我使用 faker 添加虚拟数据和 Picqr PHP 条码生成器。

以下是我的工厂文件

<?PHP

namespace Database\Factories;

use App\Models\Product;
use Illuminate\Database\Eloquent\Factories\Factory;
use Picqer;

class ProductFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Product::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function deFinition()
    {
        $code = $this->faker->bothify('PHZM-##########');
        $barcode = $this->generateBarcode($code);
        return [            
            'code' => $code,'barcode' => $barcode,];
    }

    private function generateBarcode($code_to_convert) {
        $generator = new Picqer\Barcode\BarcodeGeneratorHTML();
        $barcode = $generator->getBarcode($code_to_convert,$generator::TYPE_CODE_128,1,15);
        return $barcode;
    }
}

然后这是我的迁移文件

<?PHP

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateProductsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products',function (Blueprint $table) {
            $table->increments('id');
            $table->string('code');
            $table->text('barcode')->nullable();
            $table->string('name');
            $table->longText('description');
            $table->string('size');
            $table->string('unit');
            $table->float('cost');
            $table->float('srp');
            $table->string('supplier');
            $table->integer('qty_on_hand')->nullable();
            $table->string('category');
            $table->dateTime('delivery_date');
            $table->timestamp('created_at')->nullable();
            $table->timestamp('updated_at')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('products');
    }
}

非常感谢任何帮助。

我想不出要写的词,对不起。 Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英。 Fusce finibus tincidunt quam,et lacinia ex maximus quis。 Aenean posueretellus at pretium suscipit。 Phasellus semper totortor a nisl ornare cursus。 Ut eget convallis purus。 Phasellus non semper metus,nec blandit dolor。 Vestibulum non sapien non mi vehicula semper。 Quisque a quam quis enim facilisis porttitor。 Nullam luctus pretium justo nec 拍卖人。 Praesent lacus nibh,suscipit a ligula nec,commodo malesuada felis。 Vivamus ut nisi id purus consectetur volutpat quis id lacus。 Maecenas consectetur pharetra erat vel posuere。 Fusce id augue 坐在 amet neque suscipit lobortis。 Proin tempor semper urna sed pellentesque.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)