я следующий код в моем приложении/routes.php файла:Laravel дает ошибку 404, даже если маршрут определяется
<?php
// Route/model binding for data
Route::model('data', 'Data');
Route::get('/', function() {
return Redirect::to("data");
});
// Display all data (of all types)
Route::get('data', function(){
$data = Data::all();
return View::make('data.index')
->with('data', $data);
});
// Display all data of a certain type
Route::get('data/type/{name}', function($name){
$type = Data::whereName($name)->with('data')->first();
return View::make('data.index')
->with('type', $type)
->with('data', $type->data);
});
Route::get('data/{data}', function($data){
return View::make('data.single')
->with('data', $data);
});
// Create/Add new data
Route::get('data/create', function(){
$data = new Data;
return View::make('data.edit')
->with('data', $data)
->with('method', 'post');
});
Route::post('data', function(){
$data = Data::create(Input::all());
return Redirect::to('data/'.$data->id)
->with('message', 'Seccessfully added data!');
});
// Edit data
Route::get('data/{data}/edit', function(Data $data){
return View::make('data.edit')
->with('data', $data)
->with('method', 'put');
});
Route::put('data/{data}', function(){
$data->update(Input::all());
return Redirect::to('data/'.$data->id)
->with('message', 'Seccessfully updated page!');
});
// Delete data
Route::get('data/{data}/delete', function(Data $data){
return View::make('data.edit')
->with('data', $data)
->with('method', 'delete');
});
Route::delete('data/{data}', function(Data $data){
$data->delete();
return Redirect::to('data')
->with('message', 'Seccessfully deleted data!');
});
// The about page (static)
Route::get('about', function(){
return View::make('about');
});
// View composer
View::composer('data.edit', function($view){
$types = Type::all();
if(count($types) > 0)
{
$type_options = array_combine($types->lists('id'),
$types->lists('name'));
}
else
{
$type_options = array(null, 'Unspecified');
}
$view->with('type_options', $type_options);
});
Все мои маршруты работают отлично, за исключением данных/создания. Когда я посещаю данные/создаю, я получаю ошибку 404 Not Found. Даже если я определяю маршрут следующим образом:
Route::get('data/create', function(){
return "Test";
});
Я все еще получаю ошибку 404. Однако следующие работы просто прекрасны:
Route::get('somethingElse/create', function(){
return "Test";
});
Я понятия не имею, в чем проблема. Я следую примерам в книге «Начало работы с Laravel 4» Рафаля Сонье, и автор пишет код, идентичный тому, что у меня выше (хотя вместо «данных» используется «кошки»).
Это действительно проблема. – chipit24
Он дает 404, потому что '{data}' привязан к модели, а 'create' не является допустимой моделью данных, следовательно 404. – ollieread