【问题标题】:Blank White Screen Laravel 5.2空白白屏 Laravel 5.2
【发布时间】:2016-07-05 13:51:12
【问题描述】:

我创建了一个新的控制器UsersController 并设置了如下所述的路由。现在我正在尝试访问此 URL ( http://localhost/ecom/users/signin ),但它只显示一个空白屏幕。此页面的控制台和源代码中没有任何内容。我使用的是资源控制器和 Laravel 5.2。

PS:如果需要更多内容,请在 cmets 中提及。

Routes.php

Route::resource('users', 'UsersController');

Route::get('users/signin', 'UsersController@getSignin');
Route::get('users/newaccount', 'UsersController@getSignup');

StoreController.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() !!}

【问题讨论】:

  • 如果你把dd("a"); 放在getSignin() 中,它会打印什么吗?
  • naa 它只打印空白屏幕!
  • 因此,永远不会调用 getSignin()。其他功能是否正常?
  • localhost/ecom/users/create 这工作正常!获取新帐户路由的表单。
  • @LaravelWarrior for Linux 和 Mac OS:打开终端,进入项目根目录并输入:chmod -R 755 storage

标签: php laravel laravel-routing laravel-5.2


【解决方案1】:

检查 .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>

【讨论】:

    【解决方案2】:

    我知道这已经很老了,但我认为这是因为您在调用 Validator、Redirect 和 Auth 类时没有在顶部使用它...

    添加:

    use Validator;
    use Auth;
    use Response;
    

    到控制器的顶部。

    【讨论】:

      【解决方案3】:

      不确定为什么评论被删除,但您可以将您的路线移到资源上方,它应该可以工作。

      Route::get('users/signin', 'UsersController@getSignin');
      Route::get('users/newaccount', 'UsersController@getSignup');
      
      Route::resource('users', 'UsersController');
      

      【讨论】:

        【解决方案4】:

        在你的路线放

        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');
        

        【讨论】:

          猜你喜欢
          • 2016-09-06
          • 2017-01-13
          • 2018-07-05
          • 1970-01-01
          • 1970-01-01
          • 2017-07-20
          • 2021-09-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多