2014-05-03 51 views
1

要保持基本我想創建一個書籤應用Laravel重定向到POST方法

我有一個簡單的書籤

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){ 

} 
} 

.php,我創建了一個資源

Route::resource('links','LinksController'); 

和我想重定向/添加到存儲方法我加

Route::get('/add',function(){ 
    return Redirect::action('[email protected]'); 
}); 

但它從來沒有顯示hello消息,代替它重定向我

http://zas.dev/links

我也試圖與

return Redirect::route('links.store'); 

沒有多少成功

感謝您的幫助

回答

1

好吧,我現在得到你所想這樣做。這將工作:

Route::get('add', '[email protected]'); 

刪除:

Route::resource('links','LinksController'); 

,並刪除:

Route::get('/add',function(){ 
    return Redirect::action('[email protected]'); 
}); 

對不起了這麼久!

+1

也沒有工作,謝謝西德尼,但它並沒有真正回答這個問題,也許我錯過了一些東西。來自bookmarklet的請求是GET而不是POST,在代碼中沒有看到什麼可以處理這個 –

+0

從你發送了什麼?框架(BackboneJS,EmberJS)還是常規的AJAX調用? – sidneydobber

+1

從我的問題開始的書籤,所以它非常基本 但我的問題更多:爲什麼重定向到存儲方法不起作用 –

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); 
} 
+0

感謝您的提示,但即使沒有輸入值 –