Php 编辑页面正在路由到查看页面
我正在为我的列表创建一个编辑页面,出于某种原因,当我转到Php 编辑页面正在路由到查看页面,php,laravel,laravel-4,laravel-routing,Php,Laravel,Laravel 4,Laravel Routing,我正在为我的列表创建一个编辑页面,出于某种原因,当我转到listings/view/{id}/edit时,我被重定向到listings/view/{id} 这是ListingsController.php中的getEdit()方法 public function getEdit($id) { $listings = Listing::find($id); $this->layout->content = View::make('listings/edit')
listings/view/{id}/edit
时,我被重定向到listings/view/{id}
这是ListingsController.php中的getEdit()方法
public function getEdit($id)
{
$listings = Listing::find($id);
$this->layout->content = View::make('listings/edit')
->with('listings', $listings);
}
这是views/listings/edit.blade.php
<h1>Editing {{ $listings->id }}</h1>
<!-- if there are creation errors, they will show here -->
{{ HTML::ul($errors->all()) }}
{{ Form::model($listings, array('route' => array('listings/edit', $listings->id), 'method' => 'PUT')) }}
<div class="form-group">
{{ Form::label('status', 'Status') }}
{{ Form::email('status', null, array('class' => 'form-control')) }}
</div>
<div class="form-group">
{{ Form::label('listingfor', 'For') }}
{{ Form::select('listingfor', array(
'' => 'Listing For',
'For Sale' => 'For Sale',
'For Rent' => 'For Rent',
'Sale-Rent' => 'Sale - Rent'
),'',
array('class' => 'form-control'
)) }}
</div>
{{ Form::submit('Edit', array('class' => 'btn btn-primary')) }}
{{ Form::close() }}
Route::controller('users', 'UsersController');
Route::controller('listings', 'ListingsController');
Route::post('listings/add', array('uses' => 'ListingsController@setAdd'));
Route::get('contacts', function()
{
return View::make('listings.add');
});
Route::get('listings/edit/{id}', array('uses' => 'ListingsController@getEdit'));
Route::get('listings/view/{id}', array('uses' => 'ListingsController@getView'));
Route::get('add', array('uses' => 'ListingsController@getAdd'));
Route::controller('/', 'HomeController');
来自artisan Routes的路由
+--------+-----------------------------------------------------------------+------+----------------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+-----------------------------------------------------------------+------+----------------------------------+----------------+---------------+
| | GET|HEAD users/register/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getRegister | | |
| | GET|HEAD users/login/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getLogin | | |
| | GET|HEAD users/logout/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getLogout | | |
| | GET|HEAD users/dashboard/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getDashboard | | |
| | POST users/create/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@postCreate | | |
| | POST users/signin/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@postSignin | | |
| | GET|HEAD|POST|PUT|PATCH|DELETE users/{_missing} | | UsersController@missingMethod | | |
| | GET|HEAD listings/main/{one?}/{two?}/{three?}/{four?}/{five?} | | ListingsController@getMain | | |
| | GET|HEAD listings/view/{one?}/{two?}/{three?}/{four?}/{five?} | | ListingsController@getView | | |
| | GET|HEAD listings/add/{one?}/{two?}/{three?}/{four?}/{five?} | | ListingsController@getAdd | | |
| | GET|HEAD listings/edit/{one?}/{two?}/{three?}/{four?}/{five?} | | ListingsController@getEdit | | |
| | POST listings/edit/{one?}/{two?}/{three?}/{four?}/{five?} | | ListingsController@postEdit | | |
| | POST listings/add/{one?}/{two?}/{three?}/{four?}/{five?} | | ListingsController@postAdd | | |
| | GET|HEAD|POST|PUT|PATCH|DELETE listings/{_missing} | | ListingsController@missingMethod | | |
| | POST listings/add | | ListingsController@setAdd | | |
| | GET|HEAD contacts | | Closure | | |
| | GET|HEAD listings/edit/{id} | | ListingsController@getEdit | | |
| | GET|HEAD listings/view/{id} | | ListingsController@getView | | |
| | GET|HEAD add | | ListingsController@getAdd | | |
| | GET|HEAD|POST|PUT|PATCH|DELETE {_missing} | | HomeController@missingMethod | | |
+--------+-----------------------------------------------------------------+------+----------------------------------+----------------+---------------+
您正在手动调用listings/edit route,但您应该使用内置函数来实现此功能,因此:
{{ Form::model($listings, array('route' => array('listings/edit', $listings->id)...
应该是这样的:
{{ Form::model($listings, array('action' => array('ListingsController@edit', $listings->id)...
这样,Laravel就知道你想要什么了。默认情况下,你已经拥有了它:
GET|HEAD listings/view/{one?}/{two?}/{three?}/{four?}/{five?}
因此,删除这两个:
Route::get('listings/edit/{id}', array('uses' => 'ListingsController@getEdit'));
Route::get('listings/view/{id}', array('uses' => 'ListingsController@getView'));
选中beggining Route::controller中的“artisan routes”(“listings”…设置如下路径:GET | HEAD listings/view/{one?}/{two?}/{three?}/{four?}/{five?},因此它也与您稍后定义的编辑路径匹配。我有这个
GET | HEAD listings/edit/{one?}/{two two three?}/{three?}/{four?}/{five?}|ListingsController@getEdit
这是否意味着URI是listings/edit/{id}
?即使是这样,如果我访问该URI,我得到的Route[listings/edit]未定义。(视图:C:\wamp\www\re3\app\views\listings\edit.blade.php)
粘贴来自artisan的所有路由我用artisan路由更新了我的帖子
检查答案,它应该会像你预期的那样工作,这就是问题所在。路由仍然让我困惑。非常感谢。但是我想我应该为我创建的每个自定义方法创建一个路由。getAdd()
与show()不同
对于定制,您应该这样做;对于已有的,您不应该这样做