https://github.com/Xethron/migrations-generatorlaravel 5.1: Migracja istniejącej bazy danych
I migracji bazy danych do mojego struktury laravel pomocą polecenia php artisan migrate:generate
za pomocą rozszerzenia powyżej. Ale jest mały problem, mój klucz podstawowy nie jest nazwany jako id, ja raczej użyłem innej konwencji, dodając przedrostek dla każdego z nich, taki jak user_id, product_id, photo_id, itd. Wszystkie te są automatycznie zwiększane, oczywiście.
Oto mój obecny plik create_users_table.php w folderze migracji. Zdefiniowałem user_id, aby zastąpić domyślną opcję id, czy to właściwe użycie?
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->primary('user_id');
$table->integer('user_id', true);
$table->string('name', 500);
$table->string('email', 500);
$table->string('password', 500);
}
);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
Czytałem, że muszę dodać coś jak poniżej, ale nie jestem pewien, gdzie do zdefiniowania protected $primaryKey
ponieważ moja klasa rozszerza Migracja zamiast wymowny.
class CreateUsersTable extends Eloquent {
protected $primaryKey = 'user_id';
}
Dostaję następujący błąd, gdy idę do/auth/stronę logowania, która myślę, że ze względu na przyczyny user_id użycia zamiast id. Jak mogę to naprawić?
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.id' in 'where clause' (SQL: select * from `users` where `users`.`id` = 5 limit 1)
Aaa i zadziałało. Dziękuję Ci bardzo. – salep
Bez problemu. Życie będzie łatwiejsze, jeśli będziesz postępować zgodnie z konwencjami Laravel, np. Używając podstawowych kluczy 'id', ale kiedy przenosisz aplikacje takie jak Twoja, czasami warto je łamać. W większości miejsc Laravel ma sposoby na to. –
Zgadzam się z tobą. Wykorzystałbym konwencje Laravela, jeśli wcześniej nie utworzyłem struktury bazy danych. – salep