درود دوستان ...
در لاراول سیستم ورود و عضویت auth ایجاد کردیم و میدلرها و رابطه ها و سیدر ها تعریف کردیم...
اما مشکلی که داره اطلاعاتی که به صورت دستی ایجاد شده را پیدا نمی کنه میگه ایمیل ورود در پایگاه داده موجود نمی باشد ...
نمونه کد سیدر :
public function run()
{
DB::table('users')->insert([
'role_id' => '1',
'name' => 'C.Admin',
'username' => 'admin',
'email' => 'admin@gmail.com',
'password' => bcrypt('rootadmin'),
]);
DB::table('users')->insert([
'role_id' => '2',
'name' => 'C.Author',
'username' => 'author',
'email' => 'author@gmail.com',
'password' => bcrypt('rootauthor'),
]);
}
@Alimotreb
درود..
آری اجرا شده و اطلاعات کاربری به پایگاه داده وارد شده...
اما مشکل هنوز حل نشده...
@Alimotreb
با تینکر (tinker) خروجی گرفتم مشکلی نداره :
>>> AppUser::find(1);
=> AppUser {#2951
id: 1,
role_id: 1,
name: "C.Admin",
username: "admin",
image: "default.png",
about: null,
email: "admin@gmail.com",
email_verified_at: null,
created_at: null,
updated_at: null,
}
>>> AppUser::find(2);
=> AppUser {#139
id: 2,
role_id: 2,
name: "C.Author",
username: "author",
image: "default.png",
about: null,
email: "author@gmail.com",
email_verified_at: null,
created_at: null,
updated_at: null,
}
>>> AppRole::find(1)->users
=> IlluminateDatabaseEloquentCollection {#2957
all: [
AppUser {#2953
id: 1,
role_id: 1,
name: "C.Admin",
username: "admin",
image: "default.png",
about: null,
email: "admin@gmail.com",
email_verified_at: null,
created_at: null,
updated_at: null,
},
],
}
>>> AppRole::find(2)->users
=> IlluminateDatabaseEloquentCollection {#2958
all: [
AppUser {#2946
id: 2,
role_id: 2,
name: "C.Author",
username: "author",
image: "default.png",
about: null,
email: "author@gmail.com",
email_verified_at: null,
created_at: null,
updated_at: null,
},
],
}
@Alimotreb
Author:
class AuthorMiddleware
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::user()->role->id == 2)
{
return $next($request);
} else{
return redirect()->route('login');
}
}
}
Admin :
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::user()->role->id == 1)
{
return $next($request);
} else{
return redirect()->route('login');
}
}
}
Route :
Route::group(['as'=>'admin.', 'prefix'=>'admin', 'namespace'=>'Admin', 'middleware' => ['auth', 'admin']], function(){
Route::get('/dashboard', 'DashboardController@index')->name('dashboard');
});
Route::group(['as'=>'author.', 'prefix'=>'author', 'namespace'=>'Author', 'middleware' => ['auth', 'author']], function(){
Route::get('/dashboard', 'DashboardController@index')->name('dashboard');
});
@Alimotreb
درود..
متاسفانه این روش گفتی خطا دریافت کردم:
In RouteFileRegistrar.php line 35:
Illuminate\Routing\RouteFileRegistrar::register(): Failed opening require
d 'Array' (include_path='.:/usr/share/php')
@Alimotreb
این روش امتحان کردم متاسفانه سوابق ایمیل ثبت نامی پیدا نمی کنه:
Route::namespace('admin')->name('admin.')->group(function() {
Route::group(['prefix' => 'admin', 'middleware' => ['auth']], function() {
Route::get('/dashboard', 'DashboardController@index')->name('dashboard');
});
});
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟