私はLaravel 5.2でログイン機能を実装する必要があります。私は、公式のLaravalのドキュメントを使用して成功裏に完了しました。ただし、別のデータベーステーブルのカラム名、つまりst_username
とst_password
を使用してユーザを認証する方法がわかりません。Laravel 5.2で異なるデータベーステーブルの列名でログインするにはどうすればよいですか?
私は手がかりを求めてインターネットを検索しましたが、無駄です。 Authにはどのクラスを使用する必要があるのかわかりません(Illuminate .......など)。誰かが答えを知っているなら、私に知らせてください。ここで
は私のコードは次のとおりです。
ログインビュー
@extends('layouts.app')
@section('content')
<div class="contact-bg2">
<div class="container">
<div class="booking">
<h3>Login</h3>
<div class="col-md-4 booking-form" style="margin: 0 33%;">
<form method="post" action="{{ url('/login') }}">
{!! csrf_field() !!}
<h5>USERNAME</h5>
<input type="text" name="username" value="abcuser">
<h5>PASSWORD</h5>
<input type="password" name="password" value="abcpass">
<input type="submit" value="Login">
<input type="reset" value="Reset">
</form>
</div>
</div>
</div>
</div>
<div></div>
@endsection
AuthController
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $redirectTo = '/home';
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
$this->username = 'st_username';
$this->password = 'st_password';
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
ルートが
Route::get('/', function() {
return view('index');
});
Route::group(['middleware' => 'web'], function() {
Route::auth();
Route::get('/home', '[email protected]');
});
のconfig/auth.php
ファイルreturn [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
],
];
解決策を実装する際にこのエラーが発生しました。 'EloquentUserProvider.php行のFatalErrorException 126:クラス '\ App \ User'が見つかりませんでした。 ' –
エラーは私の解決策ではありません。あなたのユーザーモデルはどこにありますか?ユーザーのために別のテーブルを使用していますか? – Digitlimit
私はそれがあなたの解決策ではないことを知っています。私はちょうど助けを求めています。エラーの原因は、 'app/Models/User.php'にある' User.php'の位置です。だから私は 'app/User.php'に変更しました。しかし、まだ問題は 'EloquentUserProvider.php行113のErrorException:未定義インデックス:パスワード'として発生します。 –