Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Illuminate\Database\Schema;
4
 
5
use Illuminate\Support\Str;
6
 
7
class ForeignIdColumnDefinition extends ColumnDefinition
8
{
9
    /**
10
     * The schema builder blueprint instance.
11
     *
12
     * @var \Illuminate\Database\Schema\Blueprint
13
     */
14
    protected $blueprint;
15
 
16
    /**
17
     * Create a new foreign ID column definition.
18
     *
19
     * @param  \Illuminate\Database\Schema\Blueprint  $blueprint
20
     * @param  array  $attributes
21
     * @return void
22
     */
23
    public function __construct(Blueprint $blueprint, $attributes = [])
24
    {
25
        parent::__construct($attributes);
26
 
27
        $this->blueprint = $blueprint;
28
    }
29
 
30
    /**
31
     * Create a foreign key constraint on this column referencing the "id" column of the conventionally related table.
32
     *
33
     * @param  string|null  $table
34
     * @param  string  $column
35
     * @return \Illuminate\Database\Schema\ForeignKeyDefinition
36
     */
37
    public function constrained($table = null, $column = 'id')
38
    {
39
        return $this->references($column)->on($table ?? Str::of($this->name)->beforeLast('_'.$column)->plural());
40
    }
41
 
42
    /**
43
     * Specify which column this foreign ID references on another table.
44
     *
45
     * @param  string  $column
46
     * @return \Illuminate\Database\Schema\ForeignKeyDefinition
47
     */
48
    public function references($column)
49
    {
50
        return $this->blueprint->foreign($this->name)->references($column);
51
    }
52
}