конструктор запросов laravel, не инкапсулирующий строки - PullRequest
0 голосов
/ 15 октября 2018
                /*
             * ajax submission
             * data[545][App\ReportNames][ReportID]: 545
               data[545][App\ReportNames][ReportName]: Cabinet Value
               data[545][App\ReportNames][ReportType]: PHP
               data[545][App\ReportNames][ObjectName]: CabinetValueReport
               data[545][App\ReportNames][ObjectType]: Code
               data[545][App\ReportNames][Comments]: ObjName refs Model
               data[545][App\ReportNames][Disabled][]: 0
             *
             */
            $data = $request->data[$Key[0]][$model][$column];
            if(!is_numeric($data)){
                $data = array_map('strval',$request->data[$Key[0]][$model][$column]);
                //"message": "array_map(): Argument #2 should be an array",
                $data = (string)$request->data[$Key[0]][$model][$column];
                //"message": "Array to string conversion",
                $data = "'".$data."'"; 
                // "message": "Array to string conversion",
                $data = $data->__toString(); 
                //"message": "Call to a member function __toString() on string",
            }
            $update->save(); //Array to string conversion ... sql clause with string values not enclosed by quotes

Основная проблема, с которой я сталкиваюсь, состоит в том, что построенные SQL-запросы не инкапсулируют строковые значения.Поэтому, если я передаю свои $ data прямо в команду model-> save (), она генерирует этот sql

update [ReportNames] set [Comments] = ObjName refs Model, [Disabled] = 0 where [ReportID] = 545

Очевидно, что без переноса строковых параметров я не могу сохранить эту информацию.Так что в sql server manager все работает отлично.

update [ReportNames] set [Comments] = 'ObjName refs Model', [Disabled] = 0 where [ReportID] = 545

Любые советы о том, как изменить строковые значения, отправленные в запросе, будут оценены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...