Объект класса stdClass не может быть преобразован в строку в Codeigniter3 - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь сохранить массив в базе данных (SQL Server), в этом массиве я получаю некоторые значения из пользовательского интерфейса, а некоторые значения выбираются из модели. Здесь моя проблема только со вторым ... Значения, поступающие из пользовательского интерфейса, вставляются, но значения, поступающие из модели, находятся в нотации объекта .... Он не может быть сохранен в одной переменной ... так, чтобы данныедаже не сохраняется в базе данных ... и возникает ошибка

Объект класса stdClass не может быть преобразован в строку

Вот мой код ...

Модель

public function getCustcode($customer)
{
 return $query = $MainDB->query("SELECT custcode from CRM_CustomerEvents_View  where custname = '".$customer."'")->row();
}

Контроллер:

public function addEvent()
    {        
        $name               = $this->input->post("name",TRUE);
        $start_date         = $this->input->post("start_date", TRUE);
        $end_date           = $this->input->post("end_date", TRUE);
        $customer           = $this->input->post("customer",TRUE);
        $custcode           = $this->Calendarmodel->getCustcode($customer);

        $tranno             = $this->input->post("transno",TRUE);
        $leadid             = $this->Calendarmodel->getLeadID($tranno);
}



$data = array(
            "title"       => $name,                          
            "start_event" => $start_date,                 
            "end_event"   => $end_date,                   
            "custcode"    => $custcode,   
            "Leadid"      => $leadid,   
             );

Возникает ошибка

Объект класса stdClass не может быть преобразован в строку

тогда я изменился следующим образом

$data = array(
            "title"       => $name,                          
            "start_event" => $start_date,                  
            "end_event"   => $end_date,
           "custcode"    => $custcode[0]['custcode'],     //'100287',//
            "Leadid"      => $leadid[0]['Leadid']         //'10070'//
             );

Выдает ошибку:

Невозможно использовать объект типа stdClass в качестве массива

Если я использую json_encode($custcode) статическим способом (для тестирования), и он дает мне данные в виде:

"{"custcode":"100287"}" 

Пожалуйста, кто-нибудь может дать какое-либо решение для обработки данных этого объекта, поступающих из Модели .. .

1 Ответ

0 голосов
/ 24 октября 2019

В вашем случае вам необходимо преобразовать stdObject в array, просто добавив (array) перед stdObject.

. Оно должно выглядеть следующим образом:

$custcode = (array)$this->Calendarmodel->getCustcode($customer); 
$leadid   = (array)$this->Calendarmodel->getLeadID($tranno);

И использоватьваш второй $data (попробуйте $custcode['custcode'] и $leadid['Leadid']). Должно помочь.

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