#php #sql-server #laravel #laravel-8 #laravel-livewire
Вопрос:
Я использую фреймворк Laravel 8.54.0 и livewire. Я хочу вызвать данные для своей раскрывающейся формы. Но я получаю ошибку sqlstate. Может ли кто-нибудь помочь мне найти способ решить эту проблему?
Модель:
class Item extends Model
{
protected $table = 'item';
protected $primaryKey = 'idx';
public $timestamps = false;
public const CREATED_AT = 'd_in';
public const UPDATED_AT = 'd_edit';
protected $connection = 'mysql2';
}
Контроллер Livewire:
$this->produk_ictn_row = Item::get();
Вид:
<select disabled name="formkodeproduk" id="formkodeproduk" class="form-control @error('formkodeproduk') is-invalid @enderror" wire:model="produk_code">
@foreach($produk_ictn_row as $produk_ictn_row)
<option value="{{$produk_ictn_row->Kode}}">{{$produk_ictn_row->Kode}}</option>
@endforeach
</select>
Ответ №1:
в нем говорится, что у вас более 2100 записей, поэтому запрос должен содержать их все в запросе where!!
Ну , в некоторых sql-сервисах, таких как microsoft-sql, ограничение в параметре sql равно 2100, так что у вас есть 2 варианта:
во-первых, вы можете разделить свой запрос, чтобы предотвратить эту ошибку… во-вторых, вы можете разделить свою таблицу и выполнить несколько параллельных запросов.
Комментарии:
1. не могли бы вы дать мне ссылку для выполнения некоторых параллельных запросов в laravel-8?
2. github.com/staudenmeir/eloquent-param-limit-fix
3. это очень простой пакет для обработки ошибок и выполнения запросов по блокам