annotate src/BlueprintExtensions/CustomBlueprint.php @ 0:329123c41eaf

initial commit
author luka
date Thu, 23 Mar 2023 19:24:43 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
329123c41eaf initial commit
luka
parents:
diff changeset
1 <?php
329123c41eaf initial commit
luka
parents:
diff changeset
2
329123c41eaf initial commit
luka
parents:
diff changeset
3 namespace Wizzard\Magicforger\BlueprintExtensions;
329123c41eaf initial commit
luka
parents:
diff changeset
4
329123c41eaf initial commit
luka
parents:
diff changeset
5 use Illuminate\Database\Schema\Blueprint;
329123c41eaf initial commit
luka
parents:
diff changeset
6
329123c41eaf initial commit
luka
parents:
diff changeset
7 class CustomBlueprint extends Blueprint
329123c41eaf initial commit
luka
parents:
diff changeset
8 {
329123c41eaf initial commit
luka
parents:
diff changeset
9 /**
329123c41eaf initial commit
luka
parents:
diff changeset
10 * Create columns for the table that should be in every table.
329123c41eaf initial commit
luka
parents:
diff changeset
11 *
329123c41eaf initial commit
luka
parents:
diff changeset
12 * @return void
329123c41eaf initial commit
luka
parents:
diff changeset
13 */
329123c41eaf initial commit
luka
parents:
diff changeset
14 public function defaultColumns()
329123c41eaf initial commit
luka
parents:
diff changeset
15 {
329123c41eaf initial commit
luka
parents:
diff changeset
16 $this->timestamps();
329123c41eaf initial commit
luka
parents:
diff changeset
17 $this->reference("users", "created_by");
329123c41eaf initial commit
luka
parents:
diff changeset
18 $this->reference("users", "updated_by");
329123c41eaf initial commit
luka
parents:
diff changeset
19 $this->softDeletes();
329123c41eaf initial commit
luka
parents:
diff changeset
20 }
329123c41eaf initial commit
luka
parents:
diff changeset
21
329123c41eaf initial commit
luka
parents:
diff changeset
22
329123c41eaf initial commit
luka
parents:
diff changeset
23 public function reference($table_name, $column_name)
329123c41eaf initial commit
luka
parents:
diff changeset
24 {
329123c41eaf initial commit
luka
parents:
diff changeset
25 // check if the table exists before creating the reference
329123c41eaf initial commit
luka
parents:
diff changeset
26 if (!Schema::hasTable($table_name)) {
329123c41eaf initial commit
luka
parents:
diff changeset
27 throw new Exception("Table $table_name does not exist.");
329123c41eaf initial commit
luka
parents:
diff changeset
28 }
329123c41eaf initial commit
luka
parents:
diff changeset
29
329123c41eaf initial commit
luka
parents:
diff changeset
30 $reference_column_name = $column_name ?? ($table_name . '_id');
329123c41eaf initial commit
luka
parents:
diff changeset
31
329123c41eaf initial commit
luka
parents:
diff changeset
32 $reference_column = $table->unsignedBigInteger($reference_column_name);
329123c41eaf initial commit
luka
parents:
diff changeset
33 $table->foreign($reference_column_name)->references('id')->on($table_name);
329123c41eaf initial commit
luka
parents:
diff changeset
34
329123c41eaf initial commit
luka
parents:
diff changeset
35 return $reference_column;
329123c41eaf initial commit
luka
parents:
diff changeset
36 }
329123c41eaf initial commit
luka
parents:
diff changeset
37
329123c41eaf initial commit
luka
parents:
diff changeset
38 }