有人可以向我解释以下PHP代码吗?

时间:2019-05-22 04:00:35

标签: php laravel laravel-5

请任何人向我解释这种情况,我没有理解。 代码可以正常工作,但是我忘记了我用来返回值的逻辑。

$chkBlock = Blocked::where("block_username", "=", Auth::user()->username)
                    ->where("user_username", "=", $username)
                    ->count();

if ($chkBlock > 0) {
    return \Redirect::back()->withSuccess( 'This User Block you' );
}

2 个答案:

答案 0 :(得分:1)

Blocked::where("block_username", "=", Auth::user()->username)
                    ->where("user_username", "=", $username)
                    ->count();

这是SQL查询,它将根据条件返回记录数。

if ($chkBlock > 0) {
    return \Redirect::back()->withSuccess( 'This User Block you' );
}

这将检查计数是否大于0,然后使用成功消息重定向到上一页。

答案 1 :(得分:1)

在这种情况下,您正在从Blocked模型中获取数据,以检查用户是否被阻止。

为此,您只需传递当前的登录用户名(Auth::user()->username),然后再指定一个用户名($username)。

$chkBlock = Blocked::where("block_username", "=", Auth::user()->username)
                    ->where("user_username", "=", $username)
                    ->count();

此查询正在执行的操作是检查blockeds表中是否有包含当前用户和给定用户名($username)的行,并进行计数。

现在是第二个查询:

if ($chkBlock > 0) {
    return \Redirect::back()->withSuccess( 'This User Block you' );
}

您正在检查rowCount是否有条目。如果count为1或大于0表示用户被阻止,并且您正在使用消息This User Block you

重定向回

如果要查看正在运行的MySQL查询,只需使用:

DB::enableQueryLog();
//Your Model query goes here
dd(DB::getQueryLog());

它将死亡并转储MySQL查询。