我正试图将我的表称为“轮播”。但这是一个错误。 我已经为模型创建了。我正在使用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');
}
}
答案 0 :(得分:1)
您缺少->get()
部分
$data = Carousel::where('carouselName','like',$req->input('searchcar').'%')->select('id','carouselName, carouselPhoto')->get();
因此,假设您的模型中定义了setPath函数,那么现在您将找到它,因为实际上您正在尝试从queryBuilder中获取它。
答案 1 :(得分:0)
在您的代码中,您不会在db中获取数据。为了在db中获取数据,必须在代码->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);