Laravelのモデルidに文字列を使うとidを取得した際にidの値が0になる。
test_model
CREATE TABLE `test_model` (
`id` varchar(5) NOT NULL,
`user` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
COMMIT;
INSERT INTO `test_model`(`id`, `user`) VALUES ('id1','user1');
TestModelを作成
php artisan make:model TestModel
TestModel
class TestModel extends Model
{
protected $table = 'test_model';
}
>>> $obj = TestModel::first();
=> App\Models\TestModel {
id: "id1",
user: "user1",
}
>>> $obj->id;
=> 0
モデルに以下を追加するとidが正常に取得できる。
public $incrementing = false;