我创建了一个新的控制器UsersController
并设置了如下所述的路由。现在我正在尝试访问此 URL ( http://localhost/ecom/users/signin )
但它只显示空白的白屏。此页面的控制台和源代码中没有任何内容。我正在使用资源控制器和 Laravel 5.2。
PS:如果有什么需要更多,请在评论中提及。
路线.php
Route::resource('users', 'UsersController');
Route::get('users/signin', 'UsersController@getSignin');
Route::get('users/newaccount', 'UsersController@getSignup');
存储控制器.php:
<?php
namespace App'Http'Controllers;
use Illuminate'Http'Request;
use App'Http'Requests;
use View;
class UsersController extends Controller
{
public function __construct(){
parent::__construct();
}
/**
* Display a listing of the resource.
*
* @return 'Illuminate'Http'Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return 'Illuminate'Http'Response
*/
public function create()
{
return View::make('users.newaccount');
}
/**
* Store a newly created resource in storage.
*
* @param 'Illuminate'Http'Request $request
* @return 'Illuminate'Http'Response
*/
public function store(Request $request)
{
$validator = Validator::make(Input::all(), User::$rules);
if($validator->passes()){
$user = new User;
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Input::get('password');
$user->save();
return Redirect::to('users/signin')->with('message','Thank you for creating new account.Sign in now');
}
return Redirect::to('users/newaccount')->with('message','Something went wrong!')->withErrors($validator)->withInput();
}
public function getSignin(){
return View::make('users.signin');
}
/**
* Display the specified resource.
*
* @param int $id
* @return 'Illuminate'Http'Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return 'Illuminate'Http'Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param 'Illuminate'Http'Request $request
* @param int $id
* @return 'Illuminate'Http'Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return 'Illuminate'Http'Response
*/
public function destroy($id)
{
//
}
public function getSignout(){
Auth::logout();
return Redirect::to('users/signin')->with('message','Signouted!');
}
/*public function postSignin(){
if(Auth::attempt(array('name' => Input::get('name'), 'email' => Input::get('email'), 'password'=> 'Input::get('password')))){
return Redirect::to('/')->with('message','Thanks for signin');
}
return Redirect::to('users/singin')->with('message','Was Incorrect DATA!');
} */
}
登录视图:
{!! Form::open(array('url' => 'users/signin' , 'method' => 'post')) !!}
<div class="form-group">
<label for="username">User Name:</label>
<input type="username" class="form-control" name="name" id="name">
</div>
<div class="form-group">
<label for="username">Password:</label>
<input type="username" class="form-control" name="password" id="name">
</div>
<button type="submit" class="btn btn-default">Sign IN</button>
{!! Form::close() !!}
不知道为什么评论被删除,但您可以将路由移动到资源上方,它应该可以工作。
Route::get('users/signin', 'UsersController@getSignin');
Route::get('users/newaccount', 'UsersController@getSignup');
Route::resource('users', 'UsersController');
在你的路线中把
Route::get('users/signin', 'UsersController@getSignin');
Route::get('users/newaccount', 'UsersController@getSignup');
多
Route::resource('users', 'UsersController');
喜欢这个
Route::get('users/signin', 'UsersController@getSignin');
Route::get('users/newaccount', 'UsersController@getSignup');
Route::resource('users', 'UsersController');
这很老了,但我认为这是因为您正在调用验证器、重定向和身份验证类而不在顶部使用它......
加:
use Validator;
use Auth;
use Response;
到控制器的顶部。
检查 .htaccess。 Options +ExecCGI
addhandler x-httpd-php5-cgi .php
Options -MultiViews
DirectoryIndex index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteBase /
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^ index.php [L]
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>