我对if语句有疑问,我不知道 知道如何解决它。我想要做的是,如果有人投入正确的话 vCode,将创建用户。如果vCode不正确,则不会创建用户,$ message变量将为:vCode invalid。
但即使放入正确的vCode,该消息仍然表示vCode无效。 这是我的代码:
public function store(Request $request) {
$vCode = $request->only('vcode');
if ($vCode == 'stackoverflow') {
// request only the form-inputs with the names: firstname, lastname and email.
$oUser = User::create($request->only('firstname', 'lastname', 'email'));
$oUser->createPassword();
$oUser->setRole(2);
$oUser->save();
$message = $oUser->getFullname().'succesfully created';
} else {
$message = "vCode valid";
}
return back()->with('successmessage', $message);
}
答案 0 :(得分:1)
$request->only('vcode')
返回一个只包含一个元素的关联数组。
如果您在only()
来电中有三件事,那么结果可能是:
$request->only('name', 'age', 'cheese');
// ['name' => 'Pingu', 'age' => '22', 'cheese' => 'gorgonzola']
但是如果你只有一个元素,你仍然得到一个数组,它恰好是更小的:
$request->only('vcode');
// ['vcode' => 'stackoverflow']
因此您需要更改if
条件:
if ($vCode['vcode'] == 'stackoverflow') {
// should work
}
或者您可以将其作为单个值:
$vCode = $request->input('vcode');
if ($vCode == 'stackoverflow') {
// should work
}
答案 1 :(得分:0)
对单个项目使用普通电话input()
:$vCode = $request->input('vcode');
,only()
返回一个数组。
另外,请勿使用==
进行字符串比较,请使用===
。