簡體   English   中英

Laravel 5.4-表單/ API /視圖

[英]Laravel 5.4 - form/API/view

我創建了一個API( store ),將數據保存在數據庫中,如果成功則返回201,否則返回404。

if ($visit->save()){
    $visit->view_visit = [
    'href' => 'api/v1/visit/' . $visit->id,
    'method' => 'GET'
     ];
     $response = [
         'msg' => 'Visit created.',
         'visit' => $visit
     ];
     return response()->json($response, 201);
}
$response = [
    'msg' => 'Error during creation.'
    ];
return response()->json($response, 404);

它運作完美。 使用郵遞員,您可以看到其狀態為<< 201已創建>>。

應該以兩種方式使用此API:由另一個應用程序調用或由Laravel形式調用。 這是問題:

如果成功,我如何稱呼它,它將在瀏覽器中加載給定視圖? 換句話說,是否有一種方法可以使表單調用路由(api本身,如../api/visit/之類的東西),並在成功的情況下加載另一個視圖? 另外,我想將response ['msg']的內容傳遞給這個新視圖。

我知道我可以通過過濾HTTP引薦來源網址在store方法內完成此操作,但是我想嚴格保留控制器代碼來管理記錄創建。 除此之外,我還必須發送201/404代碼以及返回的數據。

我還考慮過創建另一個控制器來處理API響應,然后調用該表單,但聽起來還是太多了-我猜這應該很簡單。

在laravel中,您可以使用一種有用的方法來確定已發送的請求是AJAX請求還是普通請求,即:

$request->wantsJson()

因此,在返回函數的控制器內部,您將執行一條if語句:

if ($request->wantsJson()) {
  return response()->json();
}else{
  return view(...);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM