Error: mb_strpos() expects Parameter 1 to be string, Object Given

Asked

Viewed 373 times

0

Context:

When trying to delete the object Structure checklist the following error occurred: mb_strpos() expects parameter 1 to be string, object given How to solve this problem?

inserir a descrição da imagem aqui


Information from Dev Tools: inserir a descrição da imagem aqui
Javascript file: (checklistEstrutura-index.js)

$(document).on('click', '#btnExcluirChecklistEstrutura', function () {
    $('#idChecklistEstruturaNome').text($(this).data('id'));
    $('#idChecklistEstrutura').val($(this).data('id'));

});

//Ajax para remover um  checklist de estrutura, e atualizar a página após a ação
$('.removeChecklistEstrutura').click(function () {
    var data_id = $('#idChecklistEstrutura').val();


    $.ajaxSetup({
        headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    }); 

    $.ajax({
        url:  "/checklistsEstruturas/remove",
        type: "POST",
        data: {id: data_id}
    }).done(function (response) {
        console.log(response);
        if (response.success) {  

         $('.message').text("Sucesso ao excluir");
         $('.message').show(); 

        setTimeout(function(){
                location.reload();
            }, 500); 
        }
        else {
           alert(response.error);

        }   
    }).fail(function () {
        $('.message').text("Erro ao excluir");
    });

    return false;
});



//Evento que preencherá o modal View do Checklist de Estrutura
$(document).on('click', '.btnViewChecklistEstrutura',function () {
    $('#modalViewId').val(($(this).data('id')));
    $('#modalViewModelo').val(($(this).data('modelo')));
    $('#modalViewItem').val(($(this).data('item')));
});



Remove method from the Checkliststructurecontroller.php class

  //Este método remove o contato do checklist de Estrutura
   public function remove(Request $request)
   {
     $checklistEstrutura = ChecklistEstrutura::find($request->id);

      if (!$checklistEstrutura)
       return response()
                ->json(['error' => 'not_found'], 404);

      $response =  $checklistEstrutura->deletar($checklistEstrutura);  

      if($response['success'])
      {
       return response()
               ->json(['success' => $response['message']], 200);  

      }else
      {
            // Caso não delete, informa um erro inesperado
       return redirect()
                ->json(['error' => $response['message']], 500);        
      } 
   }



Template: "delete method" (Checkliststructure.php)

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use DB;
use SoftDeletes;

class ChecklistEstrutura extends Model
{
    protected $table = "checklist_estrutura";

    protected $primaryKey = ['Estrutura_id'];

    public $incrementing = false;

    public $timestamps = false; 

    public function checklistEstrutura()
    {
      return $this->belongsTo('App\Models\ChecklistEstrutura', 'Estrutura_id','modelo_id', 'itens_id');

    }


    //Este método salva os dados do Checklist da Estrutura
      public function salvar(ChecklistEstrutura $checklistEstrutura) : Array
      {
         $checklistEstrutura = $this->save();

           if($checklistEstrutura){

              return[
                  'success' => true,
                  'message' => 'Sucesso ao cadastrar'
              ];   
          }
          else{

              return[
                  'success' => false,
                  'message' => 'Falha ao cadastrar'
              ]; 
          }
      }


      //Este método remove os dados do Checklist da Estrutura
    public function deletar(ChecklistEstrutura $checklistEstrutura) : Array
    {
        $checklistEstrutura = $this->delete();
        if($checklistEstrutura){

            return[
                'success' => true,
                'message' => 'Sucesso ao excluir'
            ];   
        }
        else{

            return[
                'success' => false,
                'message' => 'Falha ao excluir'
            ]; 
        }
    }


  //Este método atualiza os dados do  Checklist da Estrutura
  public function alterar(ChecklistEstrutura $checklistEstrutura) : Array
  {
    $checklistEstrutura = $this->save();
      if($checklistEstrutura){
          return[
              'success' => true,
              'message' => 'Sucesso ao atualizar'
          ];   
      }
      else{
          return[
              'success' => false,
              'message' => 'Falha ao atualizar'
          ]; 
      }
  }
}



Routes of the Checkliststructure: (web php.)

//Gerenciar dados do ChecklistEstrutura
$this->group(['middleware' => ['auth'], 'namespace' =>'admin','prefix'=>'checklistsEstruturas'], function(){
    //Inicio das Rotas de gerenciar os checklistsEstruturas
    $this->post('cadastro','ChecklistEstruturaController@cadastro')->name('checklistEstrutura.cadastro');
    $this->post('checklistEstrutura','ChecklistEstruturaController@consulta')->name('checklistEstrutura.consulta');
    $this->post('atualiza', 'ChecklistEstruturaController@atualiza')->name('checklistEstrutura.atualiza');
    $this->post('remove','ChecklistEstruturaController@remove')->name('checklistEstrutura.remove');
    $this->get('edita/{id}','ChecklistEstruturaController@edita')->name('checklistEstrutura.edita');
    $this->get('novo','ChecklistEstruturaController@novo')->name('checklistEstrutura.novo');
    $this->get('checklistEstrutura','ChecklistEstruturaController@index')->name('admin.checklistEstrutura');
   //Final das Rotas de gerenciar dados do checklistsEstruturas
});


Model ER inserir a descrição da imagem aqui

Information from DEV TOOLS: (trying to delete the object with id = 9)
Aba: Param inserir a descrição da imagem aqui
Aba: Response inserir a descrição da imagem aqui

  • Hello, Ruama. Good afternoon. Try to access your log folder. The file will be closer to that: storage/logs/laravel-*. There will give you all the backtrace (all the paths where the execution took place until the error). It seems that you passed a wrong information to some method that expects string.

  • the line redirect()->json() is not wrong? would not be response()->json()?

  • Here public function remove(Request $request) you do $checklistEstrutura = ChecklistEstrutura::find($request->id); but on your route, which is a post, you don’t have a $request->id: $this->post('remove','ChecklistEstruturaController@remove')->name('checklistEstrutura.remove');

  • 1

    @thxmxx has yes.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.