Неопределенный метод Illuminate \ Database \ Query \ Builder :: setPath () - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь назвать свой стол "Карусель". Но он получает ошибку. Я уже создал для моей модели. Я использую php myadmin.

Сообщение об ошибке:

неопределенный метод Illuminate \ Database \ Query \ Builder :: setPath ()

Карусель модель

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Carousel extends Model
{ 

}

Контроллер

function getsearchCarousel(Request $req){

    if($req->has('searchcar')){
        $data = Carousel::where('carouselName','like',$req->input('searchcar').'%')->select('id','carouselName, carouselPhoto');
        $data->setPath($req->url()."?searchcarousel=".$req->searchcar);
        return view('Admin.Page.Carousel.carousel')->with('data', $data);
    }
    else{
        return redirect('/Admin/Page/carousel');
    }
}

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

В вашем коде вы не получаете данные в дБ. Для получения данных в дБ вы должны использовать метод кода ->get() или ->first().

$carusels = Carousel::where('carouselName','like',$req->input('searchcar').'%')
    ->select('id','carouselName, carouselPhoto')
    ->get();

Этот случай carusels является экземпляром \Illuminate\Database\Eloquent\Collection, и вы должны использовать forecah для получения отдельного $ carusel

foreach($carusels as $data) {
    $data->setPath($req->url()."?searchcarousel=".$req->searchcar);       
}

и в вашей Courusel модели определите метод setPath.

Также вы можете получить отдельные данные, используя ->first

$carusels = Carousel::where('carouselName','like',$req->input('searchcar').'%')
    ->select('id','carouselName, carouselPhoto')
    ->first();
$data->setPath($req->url()."?searchcarousel=".$req->searchcar);
0 голосов
/ 03 июля 2018

Вам не хватает ->get() детали

$data = Carousel::where('carouselName','like',$req->input('searchcar').'%')->select('id','carouselName, carouselPhoto')->get();

Итак, при условии, что в вашей модели определена функция setPath, теперь вы найдете ее, потому что на самом деле вы пытаетесь получить ее из queryBuilder.

...