【发布时间】:2016-03-08 13:28:51
【问题描述】:
我在安装在 Windows 8 环境中的 XAMPP 上开发了 Laravel 5.1 应用程序。现在我想使用安装在 Ubuntu 14 环境中的 Nginx 来部署它。
我已经执行了https://www.digitalocean.com/community/tutorials/how-to-install-laravel-with-an-nginx-web-server-on-ubuntu-14-04 中提到的所有配置。我可以访问所有站点路由,例如首页,关于,联系没有任何问题。
但是在访问 auth 路由时出现问题。例如当我点击登录时,它会被重定向到分析/销售,并出现“InvalidArgumentException incompiled.php”错误,指出“未找到查看 [analytics.sales.index]。”
Windows 8 环境并非如此,应用程序可以在 Windows 8 上完美运行。
我的路线文件:
<?php
/**************** Model binding into rout ********************/
Route::model('user', 'App\User');
Route::pattern('id', '[0-9]+');
Route::pattern('slug', '[0-9a-z-_]+');
/*************** Site routes **********************************/
Route::get('/', 'HomeController@index');
Route::get('home', array('as' => 'home' , 'uses' => 'HomeController@index'));
Route::get('about', array('as' => 'about', 'uses' =>'PagesController@about'));
Route::get('contact', array('as' => 'contact', 'uses' => 'PagesController@contact'));
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
/*************** Admin routes **********************************/
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function()
{
# Admin Dashboard
Route::get('dashboard', 'Admin\DashboardController@index');
# Users
Route::get('user/data', 'Admin\UserController@data');
Route::get('user/{user}/show', 'Admin\UserController@show');
Route::get('user/{user}/edit', 'Admin\UserController@edit');
Route::get('user/{user}/delete', 'Admin\UserController@delete');
Route::resource('user', 'Admin\UserController');
});
Route::group(['prefix' => 'analytics'], function() {
# Analytics Dashboard
Route::get('/', 'Analytics\Dashboard\DashboardController@index');
Route::get('dashboard/', 'Analytics\Dashboard\DashboardController@index');
Route::get('sales', array('uses'=>'Analytics\Sales\SalesController@index'));
Route::post('carDetails', array('uses'=>'Analytics\Sales\SalesController@getCarDetails'));
Route::post('modelsales', array('uses'=>'Analytics\Sales\SalesController@getModelSales'));
Route::post('makesales', array('uses'=>'Analytics\Sales\SalesController@getMakeSales'));
});
Auth控制器代码sn-p:
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'firstname' => 'required|max:255',
'lastname' => 'required|max:255',
'username' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'designation' => 'required|max:255',
'organisation' => 'required|max:255',
'contact' => 'required|max:255',
'password' => 'required|confirmed|min:6',
]);
}
protected function create(array $data)
{
$confirmation_code = md5(microtime() . env('APP_KEY'));
return User::create([
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'username' => $data['username'],
'email' => $data['email'],
'designation' => $data['designation'],
'organisation' => $data['organisation'],
'contact' => $data['contact'],
'password' => bcrypt($data['password']),
'confirmation_code' =>$confirmation_code
]);
}
}
是否需要特定于 Nginx/Ubuntu 的路由配置?这个问题的根本原因是什么?
【问题讨论】: