Dökümantasyonda ingilizcesi "Foreign Key Constraints" olarak geçiyor ,
örnekte deniyorki
$table->foreign('user_id')->references('id')->on('users');
bu şekilde yazmalısınız ve bence gayetde anlaşılır , devam ediyor ve diyorki yukardaki çok karışık istersen bu şekilde yaz
$table->foreignId('user_id')->constrained();
tamam bu şekilde yazalımda hangi tabloya bağlanacağını nerden biliyor ? hatta devam ediyor diyorki Tablo adınız Laravel'in kurallarıyla eşleşmiyorsa, kendin belirt ve şu şekilde yaz
$table->foreignId('user_id')->constrained('users');
burda tablo adını veriyoruz hadi Constranined metodu id yi otomatik ayarlayıp direk ilgili tablonun id'sini alıyor diyelim ama users tablosuna bağlanacağını bilemezki ?
örneğin
Schema::create('profiles', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->onDelete('cascade');
$table->timestamps();
});
yukarda profil modeli ile user tablosuna gideceğini nasıl anlar ?
constrained metodu aşşağıda ve $table = null olarak geçiyor
<?php
public function constrained($table = null, $column = 'id')
Create a foreign key constraint on this column referencing the "id" column of the conventionally related table.
Illuminate\Database\Schema\ForeignIdColumnDefinition::constrained
Create a foreign key constraint on this column referencing the "id" column of the conventionally related table.
<?php
public function constrained($table = null, $column = 'id') { }
@param string|null $table
@param string $column
@return \Illuminate\Database\Schema\ForeignKeyDefinition
Bu arada herhangi bir sorunum yok anlamaya çalışıyorum , constrained() içinde herhangi bir tablo belirtilmemişse git model içinde ilişki kurulmuş tabloya bağlan gibi bişi aradım ama bulamayınca neyse merak işte