2016-04-19 156 views
0

我在學習Laravel,而且我正忙於構建一個站點(框架版本5.1.34)。我在去年9月安裝了Homestead,最初在Windows 7上安裝,然後升級到Windows 10.在Windows 7上,一切正常,在Windows 10上也能正常工作(我在Windows 10上遇到了一些問題,我設法解決),但之後我的路線最近開始表現怪異。我的所有路線仍然有效,除了現在出現404錯誤。這條路線是:Laravel路線不再工作

Route::get('projects/{project}/nodes/{node}/tasks/create', 
['uses' => '[email protected]']); 

控制器的功能是:

public function taskCreateShow(Project $project, Node $node){ 
    return view('tasks.create') 
      ->with('project',$project) 
      ->with('user',$this->user) 
      ->with('node',$node) 
      ->with('all_projects',$this->all_projects); 
} // taskCreateShow 

如果我跑php artisan route:list路線仍然顯示像所有其他的路線。我可以添加新的路線,這也很好。該模型綁定在RouteServiceProvider.php類中定義的開機功能:

public function boot(Router $router) 
{ 
    parent::boot($router); 

    // Route model binding 

    $router->model('project', 'resolved7\Project'); 
    $router->model('user', 'resolved7\User'); 
    $router->model('node', 'resolved7\Node'); 
    $router->model('task', 'resolved7\Task'); 
    $router->model('io', 'resolved7\Io'); 
} 

我已經能夠得到這個工作的唯一方法,就是將路線更改爲:

Route::get('projects_1/{project}/nodes/{node}/tasks/create', 
['uses' => '[email protected]']); 

我看過.htaccess文件,看起來很好。有人可能知道什麼可能導致這種情況發生?我感謝任何幫助或建議。謝謝。


*編輯:這裏是routes.php文件文件:

<?php 

/* 
|-------------------------------------------------------------------------- 
| Application Routes 
|-------------------------------------------------------------------------- 
*/ 

/*========================================================================= 
* General routes 
*/ 

Route::get('/', function(){ 
    return redirect('index'); 
}); 

Route::get('dashboard', function(){ 
    return 'dashboard';  
}); 

Route::get('about', function(){ 
    return view('about')->with('company_name', 'The Resolved 7<sup>th</sup>'); 
}); 

Route::get('index', function(){ 
    return view('index'); 
}); 

// Route used to get images from non-public folder 
Route::get('images/{filename}', function ($filename) 
{ 
    $path = storage_path() . '/profilepics/' . $filename; 

    $file = File::get($path); 
    $type = File::mimeType($path); 

    $response = Response::make($file, 200); 
    $response->header("Content-Type", $type); 

    return $response; 
}); 

/* ========================================================================= 
* Project specific routes 
* Use controller to re-use construct functions 
*/ 

// Project specific dashboard 
Route::get('projects/{project}', ['uses' => '[email protected]']) 
->where('project','[0-9]+'); 

// Page from which to create new project 
Route::get('projects/create', ['uses' => '[email protected]']); 

// Create a new project through post method 
Route::post('projects', ['uses' => '[email protected]']); 

// Page from which to edit projects 
Route::get('projects/{project}/edit', ['uses' => '[email protected]']); 

// Update an existing project through put method 
Route::put('projects/{project}', ['uses' => '[email protected]']); 

// Page from which a project deletion is confirmed 
Route::get('projects/{project}/delete', ['uses' => '[email protected]']); 

// Delete project 
Route::delete('projects/{project}', ['uses' => '[email protected]']); 

// Page to show project details 
Route::get('projects/{project}/detail', ['uses' => '[email protected]']); 

// Page from which to select users to add as members 
Route::get('projects/{project}/members/invite', ['uses' => '[email protected]']); 

/* ========================================================================= 
* User specific routes 
*/ 

// Page to test user 
Route::get('users/{user}/test', ['middleware' => 'auth', 
'uses' => '[email protected]']); 

// Page to show user 
Route::get('users/{user}', ['middleware' => 'auth', 
'uses' => '[email protected]']); 

// Page from which to edit user 
Route::get('users/{user}/edit', ['middleware' => 'auth', 
'uses' => '[email protected]']); 

// Update an existing user through put method 
Route::put('users/{user}', ['middleware' => 'auth', 
'uses' => '[email protected]']); 

/* ========================================================================= 
* Node specific routes 
*/ 

// Page from which to view node 
Route::get('projects/{project}/nodes/{node}', 
['uses' => '[email protected]']); 

// Page from which to create new node 
Route::get('projects/{project}/nodes/create', 
['uses' => '[email protected]']); 

// Create a new node through post method 
Route::post('projects/{project}/nodes', 
['uses' => '[email protected]']); 

// Page from which to edit nodes 
Route::get('projects/{project}/nodes/{node}/edit', 
    ['uses' => '[email protected]']); 

// Update an existing node through put method 
Route::put('projects/{project}/nodes/{node}', 
['uses' => '[email protected]']); 

// Page from which a node deletion is confirmed 
Route::get('projects/{project}/nodes/{node}/delete',['uses' => '[email protected]']); 

// Delete node 
Route::delete('projects/{project}/nodes/{node}', ['uses' => '[email protected]']); 

// Page from which a user is selected to be added to a node 
Route::get('/projects/{project}/nodes/{node}/members/add', 
['uses' => '[email protected]']); 

// Add existing project member user to specific project node 
Route::post('/projects/{project}/nodes/{node}/members/add', 
['uses' => '[email protected]']); 

// Page to confirm node member removal 
Route::get('/projects/{project}/nodes/{node}/members/{user}/remove', 
['uses' => '[email protected]']); 

// Remove node member user from a specific project node 
Route::post('/projects/{project}/nodes/{node}/members/{user}/remove', 
['uses' => '[email protected]']); 

/* ========================================================================= 
* Task specific routes 
*/ 

// Page from which to view task 
Route::get('projects/{project}/nodes/{node}/tasks/{task}', 
['uses' => '[email protected]']); 

// Page from which to create new task 
// return 'dashboard' is a test. 
Route::get('/projects/{project}/nodes/{node}/tasks/create', function(){ 
    return 'dashboard';  
}); 
/*Route::get('/projects/{project}/nodes/{node}/tasks/create', 
    ['uses' => '[email protected]']);*/ 

// Create a new task through post method 
Route::post('/projects/{project}/nodes/{node}/tasks', 
['uses' => '[email protected]']); 

// Page from which a task deletion is confirmed 
Route::get('projects/{project}/nodes/{node}/tasks/{task}/delete', 
['uses' => '[email protected]']); 

// Delete task 
Route::delete('projects/{project}/nodes/{node}/tasks/{task}', 
['uses' => '[email protected]']); 


/* ========================================================================= 
* Io specific routes 
*/ 

// Page from which to create new io 
Route::get('/projects/{project}/nodes/{node}/tasks/{task}/ios/create', 
['uses' => '[email protected]']); 

// Create a new io through post method 
Route::post('/projects/{project}/nodes/{node}/tasks/{task}/ios/', 
['uses' => '[email protected]']); 

// Page from which an io deletion is confirmed 
Route::get('projects/{project}/ios/{io}/delete', 
['uses' => '[email protected]']); 

// Delete io 
Route::delete('projects/{project}/ios/{io}', 
['uses' => '[email protected]']); 


/* ========================================================================= 
* User authentication controllers 
*/ 

Route::controllers([ 
    'auth' => 'Auth\AuthController', 
    'password' => 'Auth\PasswordController', 
]); 

/* ========================================================================= 
* Community 
*/ 

Route::get('/community', ['uses' => '[email protected]']); 

/* Testing routes 
* 
* ========================================================================= 
* 
*/ 

// Page from which to test project 
Route::get('projects/{project}/test', ['uses' => '[email protected]']); 
+0

你有沒有其他類似'projects/*'的路線可能優先於這個路線? – alepeino

+0

請顯示您的完整路線,意思是顯示您的routes.php。 –

+0

我想知道如果您使用虛擬機,Windows 10可能會導致問題。 –

回答

0

謝謝你們,我錯過了在評論提到,確實採取優先的路線。

Route::get('projects/{project}/nodes/{node}/tasks/{task}', 
['uses' => '[email protected]']); 

到:

Route::get('projects/{project}/nodes/{node}/tasks/{task}', 
['uses' => '[email protected]']) 
    ->where('project','[0-9]+') 
    ->where('node','[0-9]+') 
    ->where('task','[0-9]+'); 

全部重新工作以及我從改變了路線。我也許會改變一些其他路線,以使它們更健壯。