类'App \ Http \ Controllers \ Search'找不到

时间:2017-06-26 14:27:50

标签: php laravel

我是Laravel的新手,我们正在尝试将(https://github.com/TomLingham/Laravel-Searchy)添加到我们的项目(https://github.com/wvulibraries/rockefeller-css/tree/trying-searchy)中,以允许在表格中搜索多个字段。我可以看到包在供应商文件夹中作为tom-lingham由于某种原因我甚至无法使用它。我在DataViewController.php第79行中得到FatalThrowableError:Class'App \ http \ Controllers \ Search'not found。我按照github repo中的说明进行操作。任何建议将不胜感激。

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
// Import the table and collection models
use App\Table;
use App\Collection;
use Illuminate\Support\Facades\Auth;
/**
* The controller is responsible for showing the cards data
*/
class DataViewController extends Controller {
/**
* Constructor that associates the middlewares
*
* @return void
*/
public function __construct(){
// Middleware to check for authenticated
  $this->middleware('auth');
}
/**
* Show the data from the selected table
*/
public function index(Request $request, $curTable){
// Get the table entry in meta table "tables"
$curTable = Table::find($curTable);
if(!$curTable->hasAccess){
  return redirect()->route('home')->withErrors(['Table is disabled']);
}
// Get and return of table doesn't have any records
$numOfRcrds = DB::table($curTable->tblNme)->count();
// check for the number of records
if ($numOfRcrds == 0){
  return redirect()->route('home')->withErrors(['Table does not have any records.']);
}
// Get the records 30 at a time
$rcrds = DB::table($curTable->tblNme)->paginate(30);
// retrieve the column names
$clmnNmes = DB::getSchemaBuilder()->getColumnListing($curTable->tblNme);
// return the index page
return view('user.data')->with('rcrds',$rcrds)
                        ->with('clmnNmes',$clmnNmes)
                        ->with('tblNme',$curTable->tblNme)
                        ->with('tblId',$curTable);
}
public function show(Request $request, $curTable, $curId){
// Get the table entry in meta table "tables"
$curTable = Table::find($curTable);
if(!$curTable->hasAccess){
  return redirect()->route('home')->withErrors(['Table is disabled']);
}
// Check if search string and column were passed
if (strlen($curId) != 0) {
  $numOfRcrds = DB::table($curTable->tblNme)
                  ->where('id', '=', $curId)
                  ->count();
  // check for the number of records
  if ($numOfRcrds == 0){
    return redirect()->route('home')->withErrors(['Search Yeilded No Results']);
  }
  else {
    // $rcrds = DB::table($curTable->tblNme)
    //             ->where('id', '=', $curId)
    //             ->get();
    $rcrds = Searchy::search($curTable->tblNme)->fields('id')->query($curId)->get();
  }
}
else {
  return redirect()->route('home')->withErrors(['Invalid ID']);
}
// retrieve the column names
$clmnNmes = DB::getSchemaBuilder()->getColumnListing($curTable->tblNme);
// return the index page
return view('user.show')->with('rcrds',$rcrds)
                        ->with('clmnNmes',$clmnNmes)
                        ->with('tblNme',$curTable->tblNme)
                        ->with('tblId',$curTable);
 }
}

1 个答案:

答案 0 :(得分:4)

您正在遇到命名空间问题。

您的控制器位于App\Http\Controllers命名空间中,因此它默认显示在哪里。在控制器的顶部,在现有use Searchy;行旁边添加use行可以使其正常工作,您可以在Searchy前加{{1}告诉PHP从命名空间根开始。

\