小编Xor*_*lse的帖子

如何从laravel分页的第一页中删除查询字符串页面?

我正在使用分页,如下所示:

public function index()
    {
        $jobs = Job::paginate(5);
        return view('job.index', compact('jobs'));
    }
Run Code Online (Sandbox Code Playgroud)

在视图中:

{{ $jobs->links() }}
Run Code Online (Sandbox Code Playgroud)

存在生成两个典型页面的问题:/job并且/job?page=1两个页面具有相同的内容。

我想做任何page从分页首页上删除查询字符串的事情。

我尝试了以下方法:

if ($jobs->onFirstPage()){
  $jobs->setPageName('');
} 
Run Code Online (Sandbox Code Playgroud)

但这破坏了分页,即页面链接未正确加载,并且所有页面的查询字符串值均保持不变。

php pagination laravel laravel-5 laravel-5.4

6
推荐指数
1
解决办法
2829
查看次数

在pdo中多次分配相同的参数值

我最初有一条SQL语句,它是:

SELECT *, COUNT(friend_one) AS pending_count , COUNT(friend_two) AS requests_sent   
FROM friends
WHERE friend_one OR friend_two = ?
AND status = ?
Run Code Online (Sandbox Code Playgroud)

在其中分配我的参数,例如:

$pending_friend_count_stmt->execute(array($user_id, $status_one));
Run Code Online (Sandbox Code Playgroud)

但是,查询没有得到我想要的结果。有人向我展示了一种不同的方法,但是它多次包含变量$user_id,因此我不知道如何调整代码以使用参数。

您可以在此处查看新查询:

http://rextester.com/KSM73595

我能做吗

SELECT COUNT(CASE WHEN `friend_one` = ? THEN 1 END) as `requests_count`,
       COUNT(CASE WHEN `friend_two` = ? THEN 1 END) as `pending_count`
FROM `friends`
WHERE ? IN ( `friend_one` , `friend_two` )
  AND `status` = ?

$pending_friend_count_stmt->execute(array($user_id, $user_id, $user_id $status_one));
Run Code Online (Sandbox Code Playgroud)

php mysql sql pdo prepared-statement

1
推荐指数
1
解决办法
872
查看次数

通过PHP中的引用调用内联传递

我有一个关于PHP中的pass-by-reference的问题.我在网上搜索过,但看不到这个问题的具体内容.以下函数从数组中删除键并返回更新数组的值:

function array_fetch($k, array &$a){
    if(isset($a[$k]) || array_key_exists($k, $a)){
        $v = $a[$k];
        unset($a[$k]);
        return $v;
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码:

function foo(){
  return ['a', 'b', 'c'];
}

$a = foo();
echo array_fetch(1, $a);
print_r($a);
Run Code Online (Sandbox Code Playgroud)

b
数组([0] => a [2] => c)

所以它就像一个魅力,现在我想让代码更短一些:

echo array_fetch(1, $a = foo());
print_r($a);
Run Code Online (Sandbox Code Playgroud)

注意:只有变量应该通过引用传递给...
b
数组([0] => a [1] => b [2] => c)

假设我给变量作为参考,我错了吗?显然是这样,因为数组也没有改变,但我不明白为什么会发生这种情况.即使我用()它附上表达也无济于事.

更新:

一个可行的解决方法是使用这样的包装函数:

function &ref($var){
  return $var;
}

echo array_fetch(1, $a = &ref(['a', 'b', 'c']));
print_r($a);
Run Code Online (Sandbox Code Playgroud)

b …

php pass-by-reference php-7

0
推荐指数
1
解决办法
139
查看次数