2017-01-22 3 views
1

내 저장소는 다음과 같이이다 :저장소별로 모든 데이터를 업데이트하는 방법 (laravel 5.3)?

<?php 
namespace App\Repositories; 
use App\Models\UsersBank; 
use Illuminate\Contracts\Container\Container; 
use Rinvex\Repository\Repositories\EloquentRepository; 
class UserBankRepository extends EloquentRepository 
{ 
    public function __construct(Container $container) 
    { 

     $this->setContainer($container) 
      ->setModel(UsersBank::class) 
      ->setRepositoryId('rinvex.repository.uniqueid'); 
    } 
} 

내 모델이 같다 :

<?php 
namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 
class UsersBank extends Model 
{ 
    protected $fillable = ['user_id','bank_id','status','account_name','account_number']; 
} 

내 서비스는 다음과 같이이다 :

public function setMain($id) 
{ 
    $param['status'] = 1; 
    $this->user_bank_repository->update($id, $param); 
} 

setMain 기능이 실행되면, 그것은 업데이트됩니다 필드 상태로 1 = ID로

업데이트하고 싶습니다. status = 1을 모든 레코드에 지정하십시오. 그래서, 이드가 아닌

어떻게해야합니까?

참고 : 여기 뜻

업데이트 저장소를 통해 업데이트입니다. 모델을 통해 업데이트하지 마십시오

답변

2

update() 패키지의 소스 코드를 살펴보면 불가능하다는 것을 알 수 있으므로 foreach()을 사용하고 많은 쿼리를 만들어야합니다.

필자는 아직 Eloquent를 사용하고 있으며 소수의 기능을 제공하지 않기 때문에이 패키지는 쓸모가 없다. Eloquent를 사용하여 하나의 쿼리로 모든 행을 직접 업데이트하는 것이 좋습니다.

Model::query()->update(['status' => 1]);