为了保持基本,我想创建一个书签应用
我有一个简单的书签
javascript:location.href='http://zas.dev/add?url='+encodeURIComponent(location.href)
我创建了一个休息控制器
<?php
use zas\Repositories\DbLinkRepository;
class LinksController extends BaseController {
protected $link;
function __construct(DbLinkRepository $link) {
$this->link=$link;
// ...
//$this->beforeFilter('auth.basic', array('except' => array('index', 'show', 'store')));
// ...
}
public function index()
{
//return Redirect::to('home');
}
public function create()
{
}
public function store()
{
return 'hello';
//$this->link->addLink(Input::get('url'));
//return Redirect::to(Input::get('url'));
}
public function show($id)
{
//$url = $this->link->getUrl($id);
//return Redirect::to($url);
}
public function edit($id)
{
}
public function update($id){
}
public function destroy($id){
}
}
在routes.php中,我创建了一个资源
Route::resource('links','LinksController');
因为我想重定向/添加到我添加的商店方法
Route::get('/add',function(){
return Redirect::action('LinksController@store');
});
但它永远不会显示hello消息,而是将其重定向到
我也试过
return Redirect::route('links.store');
没有太大成功
感谢您的帮助
答案 0 :(得分:1)
问题是,一旦Redirect::
,您丢失了所有Input
值,因此您应该在执行重定向时手动将它们提供给控制器,如下所示:
Redirect::route('links.store', ["url" => Input::get("url")]);
最后在$url
方法中添加store
参数,以便接收我们在上一个方法中提供的值,如下所示:
public function store($url) {
$this->link->addLink($url);
return Redirect::to($url);
}
答案 1 :(得分:1)
好的,我现在得到你想做的事。这将有效:
Route::get('add', 'LinksController@store');
卸下:
Route::resource('links','LinksController');
并删除:
Route::get('/add',function(){
return Redirect::action('LinksController@store');
});
对不起,花了这么长时间!