laravel mysql exists_laravel 表单验证 Exists 规则的基本使用方法

public function rules()

{

return [

'phone' => 'required|digits_between:10,12|unique:mysql_card.operators,phone',

'name' => 'required',

'market_id' => 'required|exists:mysql_card.markets,id',

'email' => 'required|email|unique:operators,email',

'password' => 'required|max:20',

'login_name' => 'required|numeric|max:10|unique:mysql_card.operators,login_name',

];

}

以上是验证规则

'market_id' => 'required|exists:mysql_card.markets,id',

次验证 是否存在 mysql_card 这个数据库 markets 表名是否存在 这个id

很可惜 这么写是错误的

报错如下;

QueryException in Connection.php line 636:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'hi_hi_mysql_card.markets' doesn't exist (SQL: select count(*) as aggregate from `hi_hi_mysql_card`.`markets` where `id` = 1)

表前缀是 `hi_`

并没有 和 unique:mysql_card.operators,phone unique这个验证规则一样 去找我配置好的数据库

`mysql_card` 是在`config` 配置好的数据库名

exists: 验证不支持 指定数据库吗? 还是有其他方案 可以加入指定的数据库

这个是数据库配置信息 ,要验证的是第二个数据库配置信息 mysql_card

'mysql' => [

'driver' => 'mysql',

'host' => env('DB_HOST', 'localhost'),

'database' => env('DB_DATABASE', 'forge'),

'username' => env('DB_USERNAME', 'forge'),

'password' => env('DB_PASSWORD', ''),

'charset' => 'utf8',

'collation' => 'utf8_unicode_ci',

'prefix' => 'hi_',

'strict' => false,

],

'mysql_card' => [

'driver' => 'mysql',

'host' => env('DB_HOST', 'localhost'),

'database' => 'hi_user',

'username' => env('DB_USERNAME', 'forge'),

'password' => env('DB_PASSWORD', ''),

'charset' => 'utf8',

'collation' => 'utf8_unicode_ci',

'prefix' => 'hi_',

'strict' => false,

],

f3bd1e4c1cd4fed202a7567c9ec09a29.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 框架中,可以使用 Laravel 自带的身份验证系统来实现用户名登录。具体步骤如下: 1. 配置数据库 在 `.env` 文件中配置数据库连接信息,如下所示: ``` DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_database_username DB_PASSWORD=your_database_password ``` 2. 创建用户 运行以下 Artisan 命令来创建用户: ``` php artisan make:model User -m ``` 该命令将同时生成 `app/User.php` 模型文件和 `database/migrations/xxxx_xx_xx_xxxxxx_create_users_table.php` 迁移文件。在迁移文件中定义用户的字段和属性,如下所示: ```php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateUsersTable extends Migration { public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } } ``` 运行以下命令来执行迁移: ``` php artisan migrate ``` 3. 创建控制器 运行以下 Artisan 命令来创建控制器: ``` php artisan make:controller AuthController ``` 在 `AuthController` 中定义登录和退出登录方法,如下所示: ```php use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class AuthController extends Controller { public function showLoginForm() { return view('auth.login'); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // Authentication passed... return redirect()->intended('/dashboard'); } return back()->withErrors([ 'email' => 'The provided credentials do not match our records.', ]); } public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/'); } } ``` 4. 创建路由 在 `routes/web.php` 文件中定义登录和退出登录路由,如下所示: ```php Route::get('login', [AuthController::class, 'showLoginForm'])->name('login'); Route::post('login', [AuthController::class, 'login']); Route::post('logout', [AuthController::class, 'logout'])->name('logout'); ``` 5. 创建登录 在 `resources/views/auth/login.blade.php` 文件中定义登录,如下所示: ```html <form method="POST" action="{{ route('login') }}"> @csrf <div> <label for="email">Email</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus> @error('email') <span>{{ $message }}</span> @enderror </div> <div> <label for="password">Password</label> <input id="password" type="password" name="password" required autocomplete="current-password"> @error('password') <span>{{ $message }}</span> @enderror </div> <div> <button type="submit">Login</button> </div> </form> ``` 以上就是使用 Laravel 框架实现用户名登录的步骤,希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值