Ili*_*dis 15 php laravel laravel-5
从Laravel 4.2更新到5.0后,我几乎在我的应用程序的每个页面中收到以下消息:
UrlGenerator.php第561行中的InvalidArgumentException:Action ArticlesController @ create未定义.
在我的routes.php文件中,我有:
Route::get('articles/create', ['as' => 'articles.create', 'uses' => 'ArticlesController@create']);
Route::post('articles/create', ['as' => 'articles.create.handle', 'uses' => 'ArticlesController@handleCreate']);
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
class ArticlesController extends Controller {
public function create()
{
$input=null;
if (Input::old()) {
$input = Input::old();
}
$tagsJson = Tag::all()->toJson();
$categories = ArticleCategory::all();
return View::make('admin.articles.create', compact(array('tagsJson', 'categories', 'input')));
}
public function handleCreate()
{
$input = Input::all();
if ($input['op']=="preview") {
return redirect()->action('ArticlesController@create')->withInput();
} else if ($input['op']=="post") {
//
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误来自这一行:
return redirect()->action('ArticlesController@create')->withInput();
Run Code Online (Sandbox Code Playgroud)
有帮助吗?谢谢,伊利亚斯
您收到此错误,因为Laravel 5默认使用命名空间.官方的Laravel 5升级指南说明了有关迁移控制器的以下内容:
由于我们不打算在本指南中迁移到完整的命名空间,因此将app/Http/Controllers目录添加到composer.json文件的classmap指令中.接下来,您可以从抽象app/Http/Controllers/Controller.php基类中删除命名空间.验证迁移的控制器是否正在扩展此基类.
在app/Providers/RouteServiceProvider.php文件中,将namespace属性设置为null.
上市这里下的"控制器".
最后一行可能会解决您的问题.
我收到了相同的错误消息,这是因为我完全忘记了我需要将其添加到routes/web.php
:
Route::get('myUrlPath', 'HomeController@myActionName');
我一直试图从另一个控制器操作中做到这一点:
return redirect()->action('HomeController@myActionName')->with('windowTitle', 'Error. Please contact us.')->with('message', $message);
归档时间: |
|
查看次数: |
27590 次 |
最近记录: |