После переопределения имени таблицы создать не работает - PullRequest
0 голосов
/ 07 января 2020

После переопределения имени таблицы в конструкции __ оно не создается в соответствии с ожиданиями. хранится только единственное значение по умолчанию.

Контроллер: "TestMeController"

use App\TestMe;
use Illuminate\Http\Request; 
use Log;

class TestMeController extends Controller
{
    public function setCreateData() {

        config(['app.temp_db' => "new_test_me"]);
        $test_me_data = ["data" => "new table data"];
        $data = TestMe::create( $test_me_data );

        dd($data);
    }
}

Модель: "TestMe"

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class TestMe extends Model
{

    protected $table = "test_me";

    protected $guarded = ['id']; 

    protected $connection = "mysql";

    public function __construct() {


        if( config('app.temp_db') != "") {
            $this->table = config('app.temp_db');
        }  

    }
}

OUTPUT

.....
#original: array:3 [
    "updated_at" => "2020-01-06 13:34:18"
    "created_at" => "2020-01-06 13:34:18"
    "id" => 100
]
.....

добавлено только значение по умолчанию, я должен попытаться получить исключение, но здесь нет исключений.

1 Ответ

0 голосов
/ 07 января 2020

просто нужно передать $ атрибуты на construct

Модель: "TestMe"

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class TestMe extends Model
{

    protected $table = "test_me";

    protected $guarded = ['id']; 

    protected $connection = "mysql";

    public function __construct(array $attributes = []) {  

        parent::__construct($attributes);


        if( config('app.temp_db') != "") {
            $this->table = config('app.temp_db');
        }  

    }
}

ВЫХОД

.....
#original: array:3 [
    "updated_at" => "2020-01-06 13:34:18"
    "created_at" => "2020-01-06 13:34:18"
    "id" => 100
    "data" => "new table data"
]
.....
...