В настоящее время я работаю над простым приложением CRUD для работы и столкнулся с проблемой с BLOB и CLOB.Я не могу делать какие-либо запросы с любым столбцом этого типа.Мне не разрешено ни отбрасывать, ни изменять это.Я получаю ошибку SQL:
[IBM] [Драйвер CLI] CLI0005W Значение параметра изменено
.Насколько я понимаю, я получаю эту ошибку, потому что драйвер не понимает, что такое BLOB-объект.
Я пытался привести это к varchar, и это работает без красноречия, но моя компания хочет, чтобы это было сделано с помощью eloquent (так как яуже есть CRUD API, работающий нормально с MySQL, но он не содержит BLOB или CLOB).
Этот подход прекрасно работает:
$conn = odbc_connect('example','username','password');
$query = "SELECT cast(BLOB_COLUMN as varchar(32000)) FROM TABLE fetch first 1 row only";
$stmt = odbc_prepare($conn , $query);
odbc_execute($stmt);
while($driver = odbc_fetch_array($stmt)){
$drivers[] = $driver;
}
return $drivers;
}
Но я не могу реализовать что-то подобное с помощью eloquent,Я пробовал кастовать так: Модель
protected $casts = [
'BLOB_COLUMN' => 'string',
'CLOB_COLUMN' => 'string',
];
Контроллер (allRecords)
public function allRecords() {
$data = Model::all();
return $data;
}
Маршрут:
Route::get('model', 'ModelController@allRecords');
Любая помощь будет принята с благодарностью.Примечание: надеюсь, я объяснил это с большим количеством деталей, поскольку я программировал в колледже чуть меньше года и начал PHP / Laravel менее месяца назад.