您好,我有一個如下的 adminController。即使我檢查了狀態框,它在資料庫中也為零。我不知道為什么 if/else 塊不起作用。如果我使用除錯,我可以看到復選框的“on”值
public function addPost(Request $request){
$name=$request->title;
$content=$request->content;
$status=$request->status;
if(!is_null($status)){
$status=0;
}
else{
$status=1;
}
Posts::create([
'name' =>$name,
'content' =>$content,
'status' =>$status
]);
}
addPost.php(這是我的表單)
<div class="form-group">
<label for="">
<input type="checkbox" name="status" id="status">Status
</label>
</div>

uj5u.com熱心網友回復:
正如我所看到的,您正在檢查代碼上的 !is_null ,因此如果您檢查復選框,您將獲得 0,條件應該是這樣的:
if(is_null($status)){
$status=0;
}
else{
$status=1;
}
如果您仍然對此感到困惑,請從復選框中傳遞一個值并在控制器中檢查該值:
<div class="form-group">
<label for="">
<input type="checkbox" name="status" id="status" value="1">Status
</label>
</div>
現在,您可以在控制器中進行如下檢查:
if(isset($status) && $status == 1){
$status=1;
}
else{
$status=0;
}
uj5u.com熱心網友回復:
第一個問題是 if(!is_null($status))它永遠不會為空,因為您可以在遷移默認值(0)中寫入,所以在這里我們可以使用 Controller 進行管理。
if($status == 0)
{
$status=1;
}
這里狀態默認為 0,因此我們檢查 $status == 0 然后我們必須將其更改為 1,如果此條件為假,則狀態值已經為 1。
uj5u.com熱心網友回復:
這可能會幫助您進行一些更改:
public function addPost(Request $request){
$name=$request->title;
$content=$request->content;
//if box is checked status will be 1
if($request->status){
$status=1;
}
//if box is unchecked status will be 0
else{
$status=0;
}
Posts::create([
'name' =>$name,
'content' =>$content,
'status' =>$status
]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/510387.html
上一篇:JavaScript:通過使用一個物件獲取陣列的屬性/值來動態構建條件
下一篇:與泛型型別互動
