سلام میخوام یک متدد در Blueprint بازنویسی کنم. اومدم یک پوشه به نام service داخل app ساختم و یک فایل از کلاس با نام db.php ایجاد کردم که اینم کدش هست.
<?php namespace App\service;
use Illuminate\Database\Schema\Blueprint;
class db extends Blueprint
{
public function full_time($model = '')
{
if (is_array($model)) {
$ex = explode('|', $model);
if(in_array('C',$ex)){
$this->integer('created_at')->default('');
$this->integer('created_by')->default('');
}
if(in_array('U',$ex)){
$this->integer('update_at')->default('');
$this->integer('update_by')->default('');
}
if(in_array('D',$ex)){
$this->integer('delete_at')->default('');
$this->integer('delete_by')->default('');
}
} else {
$this->integer('created_at')->default('');
$this->integer('update_at')->default('');
$this->integer('delete_at')->default('');
$this->integer('created_by')->default('');
$this->integer('update_by')->default('');
$this->integer('delete_by')->default('');
}
}
}
و داخل مایگریشن اینو اینطور نوشتم:
public function up()
{
Schema::create('users', function (db $table) {
$table->id();
$table->string('name',100)->default('');
$table->string('family',100)->default('');
$table->char('gender',1)->default('0');
$table->string('national_code',10)->default('');
$table->string('photo',255)->default('');
$table->string('id_number',10)->default('');
$table->integer('birthday')->default(null);
$table->full_time('C|U|D');
});
}
و کد دستوری php artisan migrate:fresh را میزنم. وخطایی که می ده:
php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
TypeError
Argument 1 passed to CreateUsersTable::{closure}() must be an instance of App\service\db, instance of Illuminate\Database\Schema\Blueprint given, called in /run/media/nader/4BE03F7747D03697/project/iranftc/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php on line 166
at database/migrations/2014_10_12_000000_create_users_table.php:17
13| * @return void
14| */
15| public function up()
16| {
> 17| Schema::create('users', function (db $table) {
18| $table->id();
19| $table->string('name',100)->default('');
20| $table->string('family',100)->default('');
21| $table->char('gender',1)->default('0');
+4 vendor frames
5 database/migrations/2014_10_12_000000_create_users_table.php:27
Illuminate\Support\Facades\Facade::__callStatic()
+34 vendor frames
40 artisan:37
Illuminate\Foundation\Console\Kernel::handle()
سلام این روش تغییر blueprint از کجا اومده ؟
اون مقداری که به callback کد زیر پاس میده
Schema::create('users', function (db $table) {
دست شما نیست که چی باشه اینو هسته کد پاس میده و مشخص میکنه نوعش چی باشه
خب من extends کردم از Blueprint و یک متد بهش اضافه کردم و استفاده کردم. یعنی به این صورت نمی تونیم بنویسیم؟ پس اگر بخوایم که یه متد جدید با مثالی که بالا زدم اضاف کنیم پس چی کار کینم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟