我正在使用 Codeigniter 4 框架,并且我有一個獲取 URI 段的功能,例如
$bahasa = $request->uri->getSegment(1);
$url = $request->uri->getSegment(2);
$content = $request->uri->getSegment(3);
如果 URL 最喜歡,代碼就可以作業:
http://localhost:8080/segment1/segment2/segment3
但是如果我把 URL 喜歡http://localhost:8080/segment1/的代碼是錯誤的,則錯誤是
CodeIgniter\HTTP\Exceptions\HTTPException Request URI segment is out of range: 2
uj5u.com熱心網友回復:
只需使用isset函式來檢查段是否存在。像下面這樣:
$url = isset( $request->uri->getSegment(2) ) ? $request->uri->getSegment(2) : '';
而已!
uj5u.com熱心網友回復:
您可以使用它來檢查您的分段請求的可用性
if($request->uri->getSegment(2) || $request->uri->getSegment(3)){
//response if the request is available
}else{
//response if the request is not available
}
如果您仍然感到困惑,可以閱讀此檔案: https ://codeigniter.com/user_guide/libraries/uri.html#creating-uri-instances
uj5u.com熱心網友回復:
解決方案
禁用拋出例外
默認情況下,該類的某些方法可能會拋出例外。如果你想禁用它,你可以設定一個特殊的標志來防止拋出例外。
<?php // Disable throwing exceptions $uri->setSilent(); // Enable throwing exceptions (default) $uri->setSilent(false);
因此,如果您的示例 URI 是http://localhost:8080/segment1/:
// $bahasa will be set to 'segment1'.
$bahasa = $request->uri->setSilent()->getSegment(1);
// $url will be set to '' (empty string).
$url = $request->setSilent()->uri->getSegment(2);
// $content will be set to '' (empty string).
$content = $request->setSilent()->uri->getSegment(3);
額外提示:
您還可以使用該方法的第二個引數為特定段設定不同的默認值
getSegment()。默認為空字串。- URI 段
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/514624.html
