| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace Illuminate\Database\Schema;
- use Illuminate\Support\Str;
- class ForeignIdColumnDefinition extends ColumnDefinition
- {
- /**
- * The schema builder blueprint instance.
- *
- * @var \Illuminate\Database\Schema\Blueprint
- */
- protected $blueprint;
- /**
- * Create a new foreign ID column definition.
- *
- * @param \Illuminate\Database\Schema\Blueprint $blueprint
- * @param array $attributes
- * @return void
- */
- public function __construct(Blueprint $blueprint, $attributes = [])
- {
- parent::__construct($attributes);
- $this->blueprint = $blueprint;
- }
- /**
- * Create a foreign key constraint on this column referencing the "id" column of the conventionally related table.
- *
- * @param string|null $table
- * @param string|null $column
- * @param string|null $indexName
- * @return \Illuminate\Database\Schema\ForeignKeyDefinition
- */
- public function constrained($table = null, $column = 'id', $indexName = null)
- {
- return $this->references($column, $indexName)->on($table ?? Str::of($this->name)->beforeLast('_'.$column)->plural());
- }
- /**
- * Specify which column this foreign ID references on another table.
- *
- * @param string $column
- * @param string $indexName
- * @return \Illuminate\Database\Schema\ForeignKeyDefinition
- */
- public function references($column, $indexName = null)
- {
- return $this->blueprint->foreign($this->name, $indexName)->references($column);
- }
- }
|