小编Rai*_*ets的帖子

扩展 Laravel 5.5/5.6 蓝图

如何使用自定义方法$table->myMethod()扩展Laravel 5.5/5.6 MySQL Blueprint,如预构建方法$table->timestamps(); ?

我用 SQLlite 试过一个例子:Extending Blueprint for SQLite in Laravel 5

但我无法让它工作。我正在开发我自己的包(使用包开发最佳实践)并希望从那里包含 Blueprint 扩展。

我开发的包有 Laravel 扩展文件夹“扩展”:./packages/vendorname/packagename/src/ Extension /

有文件:

1) ./packages/vendorname/packagename/src/Extension/Blueprint.php

<?php

namespace Vendorname\Packagename\Extension;

use Illuminate\Database\Schema\Blueprint as ParentBlueprint;
use Illuminate\Support\Facades\DB;

class Blueprint extends ParentBlueprint
{

     public function myMethod()
     {
          $this->text('custom_column')->default('Some value');
          $this->text('custom_column2')->default('Some value2');
     }
}
Run Code Online (Sandbox Code Playgroud)

2) ./packages/vendorname/packagename/src/Extension/MySqlConnection.php

<?php

namespace Vendorname\Packagename\Extension;

use Vendorname\Packagename\Extension\Blueprint;
use Illuminate\Database\MySqlConnection as ParentMySqlConnection;
use Illuminate\Database\Schema\MySqlBuilder;

class MySqlConnection extends ParentMySqlConnection
{

     public function getSchemaBuilder()
     {
          if (is_null($this->schemaGrammar)) …
Run Code Online (Sandbox Code Playgroud)

php blueprint laravel package-development laravel-5.5

5
推荐指数
2
解决办法
1721
查看次数