ak wrote:Merhaba,
".... kayıt atmıyor" derken veritabanına mı kaydetmiyor login mi olmuyor. Eğer veritabanına kaydediyorsa, kaydetme sonrası login olmamasının sebebi Password alan isminin BÜYÜK harf ile başlaması ve email yerine Mail kullanılmasından olabilir.
Eğer veritabanına kaydediyorsa; app\Http\Controllers\Auth\LoginController.php sayfasına
protected function getCredentials(Request $request)
{
$credentials = $request->only($this->loginUsername(), 'Password');
//$credentials = array_add($credentials, 'active', 1); (örnek olması açısından ekledim, tabloda active alanı 1 ise)
return $credentials;
}
public function username()
{
return 'Mail';
}
ekleyip Login sayfasından giriş yapmayı dener misiniz.
İyi çalışmalar..
K.bakmayın. Register kısmını hallettim. Şu şekilde düzenledim bilgilerimi aktarayım. Benim gibi lazım olabilir birine.
Migration şu şekilde.
public function up()
{
Schema::create('company', function (Blueprint $table) {
$table->increments('id');
$table->string('name',255);
$table->string('City',20);
$table->string('District',45);
$table->string('Adress',500);
$table->string('OwnerName',150);
$table->string('email',255)->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Auth.php şu şekilde
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\Company::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
],
];
RegisterController ise şu şekilde.
<?php
namespace App\Http\Controllers\Auth;
use App\Models\company;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/';
protected $registerView = 'auth.register';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:company',
'password' => 'required|min:6|confirmed',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return company::create([
'email' => $data['email'],
'password' => bcrypt($data['password']),
'OwnerName' => $data['name'],
'name' => $data['companyName'],
'City' => $data['city'],
'District' => $data['district'],
'Adress' => $data['adress'],
]);
}
}
Company modelim ise şu şekilde.
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
class company extends Authenticatable
{
protected $table = 'company';
protected $primaryKey = 'ID';
protected $fillable = [
'name', 'email','City','password', 'District','Adress','OwnerName',
];
protected $hidden = [
'password', 'remember_token',
];
}
Bu şekilde sorunsuz bir register yapabiliyorum. Veritabanıma kayıt oluşturuyorum. Ana sayfayada ulaşıyorum. Şu an login kısmı sorunlu orası üzerinde uğraşıyorum. Email ile şifreyi doğru girdiğim zaman hiç bir şey yapmıyor. Tekrar login sayfasına gönderiyor beni. Fakat yanlış şifre yada mail girersem ise böyle bir eşleşme bulunamadı diyor. Yani doğru şifre ve emaille bizi göndermesi gereken yere göndermiyor. Bu arada çok uğraştırdım sizleri k.bakmayın. Bunda ısrar etmemin sebebi database isimlendirmesinde bir standart olması ve bu standartı bozamayacak olmamdan kaynaklanıyor. O yüzden bu ısrarım. Bu arada database ile ilgili tablo isimlerini sürekli farklı farklı gönderiyorum. Bir 3 tane laravel test dizini oluşturdum. Bir tanesi normal çalışan laravelin user tablolu hali, bir tanesi laravelin çalışan auth servisi sadece tablo adını company yapmışım. Bir tanesi ise size yukarda gönderdiğim hali projede kullanacağım hali. Kafa karışıklığı olmasın diye belirtmek istedim.