Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use IlluminateDatabaseMigrationsMigration;
- use IlluminateDatabaseSchemaBlueprint;
- use IlluminateSupportFacadesSchema;
- class CreateMyTableTable extends Migration
- {
- /**
- * Run the migrations.
- */
- public function up(): void
- {
- Schema::create('my_table', function (Blueprint $table) {
- $table->increments('id');
- $table->integer('user_id')->unsigned();
- $table->foreign('user_id')->references('id')->on('user');
- $table->tinyInteger('from_default')->nullable(false)->default(7);
- $table->tinyInteger('to_default')->nullable(false)->default(20);
- $table->timestamps();
- $table->unique('user_id');
- });
- }
- /**
- * Reverse the migrations.
- */
- public function down(): void
- {
- Schema::dropIfExists('my_table', function (Blueprint $table) {
- $table->dropUnique(['user_id']);
- $table->dropForeign(['user_id']);
- });
- }
- }
- Field Type Null Key Default Extra
- -------------------------------------------------------------------------------
- id int(10) unsigned NO PRI auto_increment
- user_id int(10) unsigned NO UNI
- from_default tinyint(4) NO 7
- to_default tinyint(4) NO 20
- created_at timestamp YES
- updated_at timestamp YES
- <?php
- use AppDomainLogicModelsMyTable;
- use AppDomainLogicModelsUser;
- use FakerFactory as FakerFactory;
- use IlluminateDatabaseSeeder;
- class MyTableTableSeeder extends Seeder
- {
- /**
- * @var array list of MyTable Users
- */
- private $myTableUsers = [];
- /**
- * Run the database seeds.
- */
- public function run()
- {
- $this->createMyTableUsers();
- $myTableUsers = $this->getMyTableUsers();
- foreach ($myTableUsers as $myTableUser) {
- factory(MyTable::class)->create([
- 'user_id' => $myTableUser->getKey(),
- 'from_default' => 7,
- 'to_default' => 20,
- ]);
- }
- }
- private function getMyTableUsers(): array
- {
- return $this->myTableUsers;
- }
- private function createMyTableUsers()
- {
- $faker = FakerFactory::create();
- // My table
- $this->myTableUsers[] = factory(User::class)->create([
- 'id' => 2,
- 'first_name' => 'Kalle',
- 'last_name' => 'Andersson',
- 'email' => 'kalle.andersson@email.com',
- 'password' => bcrypt('password', ['rounds' => 4]),
- 'mobile_number' => $faker->e164PhoneNumber,
- ]);
- $this->myTableUsers[] = factory(User::class)->create([
- 'id' => 3,
- 'first_name' => 'Johan',
- 'last_name' => 'Petterson',
- 'email' => 'johan.petterson@email.com',
- 'password' => bcrypt('password', ['rounds' => 4]),
- 'mobile_number' => $faker->e164PhoneNumber,
- ]);
- $this->myTableUsers[] = factory(User::class)->create([
- 'id' => 4,
- 'first_name' => 'Krister',
- 'last_name' => 'Johansson',
- 'email' => 'krister.johansson@email.com',
- 'password' => bcrypt('password', ['rounds' => 4]),
- 'mobile_number' => $faker->e164PhoneNumber,
- ]);
- $this->myTableUsers[] = factory(User::class)->create([
- 'id' => 5,
- 'first_name' => 'Daniel',
- 'last_name' => 'Eriksson',
- 'email' => 'daniel.eriksson@email.com',
- 'password' => bcrypt('password', ['rounds' => 4]),
- 'mobile_number' => $faker->e164PhoneNumber,
- ]);
- }
- }
- In Connection.php line 664:
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'starts_day_default' in 'field list' (SQL: insert into `my_table` (`user_id`, `starts_day_default`, `ends_day_default`, `from_default`, `to_default`) values (2, 07, 20, 7, 20))
- In PDOConnection.php line 82:
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'starts_day_default' in 'field list'
- In PDOConnection.php line 80:
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'starts_day_default' in 'field list'
- <?php
- namespace AppDomainLogicModels;
- use DateTimeImmutable;
- use IlluminateDatabaseEloquentCollection;
- use IlluminateDatabaseEloquentModel;
- class MyTable extends Model
- {
- /**
- * Indicates if the model should be timestamped.
- *
- * @var bool
- */
- public $timestamps = false;
- /**
- * The table associated with the model.
- *
- * @var string
- */
- protected $table = 'my_table';
- /**
- * Creates personal trainer, if personal trainer with id exists.
- *
- * @param int $myTableId
- *
- * @return null|self
- */
- public static function createFromId(int $myTableId): ?self
- {
- $myTable = self::select('my_table.*')
- ->join('user', 'user.id', '=', 'my_table.user_id')
- ->where('my_table.id', '=', $myTableId)
- ->whereNull('user.anonymized_at')
- ->get()
- ->first();
- return $myTable;
- }
- /**
- * Create personal trainer, if user_id exists.
- *
- * @param int $userId
- *
- * @return null|MyTable
- */
- public static function createFromUserId(int $userId): ?self
- {
- return self::where('user_id', $userId)->get()->first();
- }
- /**
- * Gets all personal trainers.
- *
- * @param bool $active
- *
- * @return Collection
- */
- public static function getMyTables(bool $active = null): Collection
- {
- $query = self::select('my_table.*')
- ->join('user', 'user.id', '=', 'my_table.user_id')
- ->whereNull('user.anonymized_at');
- if (isset($active)) {
- $query->where('user.active', '=', $active);
- }
- $myTables = $query->get();
- return $myTables;
- }
- /**
- * Gets user.
- */
- public function getUser(): User
- {
- $user = $this->belongsTo(User::class, 'user_id', 'id')->getResults();
- return $user;
- }
- /**
- * Check if personal trainers ids are valid.
- *
- * @param array $myTableIds
- *
- * @return bool
- */
- public static function areMyTableIdsValid(array $myTableIds): bool
- {
- $dbMyTableIds = self::select('my_table.id')
- ->join('user', 'user.id', '=', 'my_table.user_id')
- ->whereIn('my_table.id', $myTableIds)
- ->whereNull('user.anonymized_at')
- ->get()
- ->pluck('id')
- ->toArray();
- $dbMyTableIds = array_map('intval', $dbMyTableIds);
- sort($myTableIds);
- sort($dbMyTableIds);
- $result = false;
- if ($myTableIds === $dbMyTableIds) {
- $result = true;
- }
- return $result;
- }
- }
- php artisan view:clear
- php artisan cache:clear
- php artisan debugbar:clear
- composer dump-autoload
Add Comment
Please, Sign In to add comment