Laravel相当新,并且想遵循我习惯的表格惯例。
帐户的默认表名是“用户”,我想将其更改为“帐户”。如果有的话,我想将其更改为“user”并删除复数。
我已经使用迁移来制作一个名为“帐户”的克隆用户表,我只想弄清楚我必须对现有代码做些什么才能让它工作登录
看起来我必须以某种方式更新“ app / Http / Auth / AuthController.php ”,但我不会放弃确定它是什么我必须要做的...
我需要:
我想另一种选择就是报废他们的AuthController并建立我自己的,只是调用一个新的Account对象......这是我应该采取的路线吗?
答案 0 :(得分:3)
如果您希望将模型命名为Account,我只会扩展User类并取消某些内容:
编辑Account类中的table属性,请参阅:https://github.com/laravel/laravel/blob/master/app/User.php#L24
Account extends User {
protected $table = 'accounts';
}
创建类帐户后,编辑配置的身份验证类,请参阅: https://github.com/laravel/laravel/blob/master/config/auth.php#L31
如果您只想否决User使用的表,请编辑User类:
protected $table = 'accounts';
老实说,为什么要这么麻烦?泰勒为你提供了这个框架来启动你的应用程序,为什么不使用它,特别是如果你是Laravel的新手?
答案 1 :(得分:2)
首先,创建帐户迁移 - 复数是广泛接受的
迁移必须包含所有重要字段
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateAccountsTable extends Migration
{
public function up()
{
Schema::create('accounts', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::drop('accounts');
}
}
然后创建帐户模型,
<?php namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class Account extends Model implements AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword;
protected $table = 'accounts';
protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['password', 'remember_token'];
}
转到config\auth.php
并更改此行:
'model' => App\User::class,
至
'model' => App\Account::class,