Multiple queries in a laravel scale function

I am trying to make some queries in scope function in laravel. my code is as follows. the first request runs fine, but the second seems to be ignored. What is the right way to do this?

public function scopeUpdateStatus($query,$oldUser, $newUser, $alias, $env) {

$query->where('db_conn_app_alias_user', $newUser)->where('db_conn_app_alias', $alias)->where('app_instance_environment', $env)->update(array('user_status' => 'active'));
$query->where('db_conn_app_alias_user', $oldUser)->where('db_conn_app_alias', $alias)->where('app_instance_environment', $env)->update(array('user_status' => 'passive'));

return "success";
}
+3
source share
3 answers

The trick here is to use with (Laravel helper function) and clone.

function scopeSomeName($query) {
    with(clone $query)->whereStuff;
    with(clone $query)->whereOtherStuff;
}
+1
source

, $query . where() $query , , where() , where() . - , . $query , :

public function scopeUpdateStatus($query, $oldUser, $newUser, $alias, $env) {
    $queryTemp = $query;

    $query->where('db_conn_app_alias_user', $newUser)
        ->where('db_conn_app_alias', $alias)
        ->where('app_instance_environment', $env)
        ->update(array('user_status' => 'active'));

    $queryTemp->where('db_conn_app_alias_user', $oldUser)
        ->where('db_conn_app_alias', $alias)
        ->where('app_instance_environment', $env)
        ->update(array('user_status' => 'passive'));

    return "success";
}
0

( ) @merlinpatt. $. , /

function scopeSomeName($query) {
    $query_cloned = clone $query;
    $query->whereStuff;
    $query_cloned->whereOtherStuff;
}

, with(). , .

0

All Articles