DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?

Как Laravel узнаёт имя таблицы MySQL?

Класс модели называется User, но запись происходит в таблицу Users, хотя в модели нет упоминания этой таблицы. Как Laravel это делает?
Отдебажить не получилось. Упираюсь в функцию
Builder::insertGetId,
а она внутренняя.
[internal function]: Illuminate\Database\Query\Builder->insertGetId(Array, 'id')

use Illuminate\Database\Eloquent\Model;

class User extends Model
{

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'login', 'password_hash'
    ];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = [
        'password_hash',
    ];
}

//

    $user = new User;
    $user->login = $login;
    $user->password_hash = $hash;
    
    $user->save(); //Сохраняет в таблицу users


В миграции есть упоминание этой таблицы, но она никак не связана с моделью. Знатоки есть?

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

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('login')->unique();
            $table->string('password_hash');

            $table->timestamps();
        });
    }

    /**
  • Вопрос задан
  • 2343 просмотра
Решения вопроса 3
@Arik
Метод getTable() должен вернуть имя таблицы, при этом идет обработка свойства table, можете или свойство задать либо сразу метод переназначить. По-умолчанию можно увидеть, что берет имя модели и обрабатывает через функции plural и snake
Ответ написан
Комментировать
JhaoDa
@JhaoDa
LaravelRUS Team
https://laravel.com/docs/5.3/eloquent#defining-models, раздел «Eloquent Model Conventions».

Читайте документацию, иначе так и будет тыкаться аки слепой кутёнок.
Ответ написан
root09
@root09
В документации написано же, что по дефолту используется имя в множественном числе, т.е users
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы