以下のクエリの結果をpaginateに入れたいのですが、以下のエラーが出てしまいます。
Call to a member function paginate() on array
Laravel
1$query = DB::select(' 2 SELECT * 3FROM ( 4 SELECT 5 geo_id, 6 shop_num, 7 ASTEXT(geo), 8 GLENGTH(GEOMFROMTEXT( 9 CONCAT('LINESTRING(', 10 経度, , 緯度, ",", 11 X(geo), , Y(geo), 12 \')\' 13 )) 14 ) AS distance 15 FROM geos 16 ) AS dist 17 JOIN shop ON shop.shop_num = dist.shop_num 18 INNER JOIN conditions ON shop.shop_num = conditions.shop_num 19 INNER JOIN categories ON shop.categories_id = categories.categories_id 20 INNER JOIN medicals ON shop.shop_num = medicals.shop_num 21 INNER JOIN companies ON facilities.company_id = fac_companies.company_id 22WHERE 23 distance <= 0.027 24ORDER BY distance DESC ; 25 ');
どの箇所が間違っているのかわからず困っております。
ご教授頂けないでしょうか。
こちらは全体のコードです。
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cookie; use Illuminate\Support\Facades\DB; use Illuminate\Http\Request; /** * Class FacilityController * * @package App\Http\Controllers */ class SearchGpsController extends Controller { public function getIndex( Request $request ) { $order_by = $request->input( 'order_by', 'updated_at' ); //----------------------------------------------------- // SQL //----------------------------------------------------- $querys = DB::select('fac_plans') ->select(DB::raw( ' ' )); $query = DB::select(' SELECT * FROM ( SELECT geo_id, shop_num, ASTEXT(geo), GLENGTH(GEOMFROMTEXT( CONCAT(\'LINESTRING(\', 135.506109, \' \', 34.674875, ",", X(geo), \' \', Y(geo), \')\' )) ) AS distance FROM fac_geos ) AS dist JOIN shop ON shop.shop_num = dist.shop_num INNER JOIN conditions ON shop.shop_num = conditions.shop_num INNER JOIN categories ON shop.categories_id = categories.categories_id INNER JOIN medicals ON shop.shop_num = medicals.shop_num INNER JOIN companies ON shop.company_id = companies.company_id WHERE distance <= 0.027 ORDER BY shop_img DESC,distance DESC ; '); $sort = 'desc'; if ( $order_by === 'init_cost_min' ) { $sort = 'asc'; } if ( $order_by === 'mth_cost_min' ) { $sort = 'asc'; } if ( $order_by === 'created_at' ) { $sort = 'desc'; } $result = $query ->orderBy( sprintf( 'shop.%s', $order_by ), $sort ) ->paginate( 10 ); return view( 'search.index' ) ->with( 'shop_data', $result ); } }
回答1件
あなたの回答
tips
プレビュー