Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么带有request->only()的if语句不起作用?(拉雷维尔)_Php_Laravel - Fatal编程技术网

Php 为什么带有request->only()的if语句不起作用?(拉雷维尔)

Php 为什么带有request->only()的if语句不起作用?(拉雷维尔),php,laravel,Php,Laravel,我对if语句有问题,但我没有 知道如何修复它。我想做的是如果有人输入正确的 vCode,将创建用户。如果vCode不正确,则不会创建用户,$message变量将为:vCode invalid 但即使输入正确的vCode,消息仍会显示vCode无效。 这是我的密码: public function store(Request $request) { $vCode = $request->only('vcode'); if ($vCode == 'stackoverflow

我对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);
}
$request->only'vcode'返回仅包含一个元素的关联数组

如果您在唯一的通话中有三件事,您的结果可能是:

$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
}
对单个项目使用普通调用输入:$vCode=$request->input'vCode';,仅返回一个数组


另外,不要使用==进行字符串比较,请使用==。

您确定$vCode==='stackoverflow'?我看不出它有什么问题。dd$request,$vCode;并查看通过请求发送的内容以及分配给$vCode的内容