我的存储库是这样的:
<?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函数时,它将通过id
更新字段状态= 1我想将status = 1更新为所有记录。所以,不是由id
我该怎么做?
注意:
我在这里更新的意思是通过存储库进行的更新。不通过模型更新
答案 0 :(得分:2)
查看软件包的update()
方法的源代码,您将看到它不可能,因此您需要使用foreach()
并创建一堆查询。
我的观点是这样,类似的软件包是无用的,因为它们仍在使用Eloquent并且不提供任何少数功能。我建议您直接使用Eloquent只用一个查询来更新所有行:
Model::query()->update(['status' => 1]);