Php 在Laravel中搜索视图
我在一个网站上工作,我有一张我需要的每个城市的地图,例如“London.blade.php”、“Paris.blade.php”。 我试图在站点上实现一个搜索栏,我需要它作为结果返回视图(blade.php页面),而不是视图的内容。Php 在Laravel中搜索视图,php,sql,laravel,views,blade,Php,Sql,Laravel,Views,Blade,我在一个网站上工作,我有一张我需要的每个城市的地图,例如“London.blade.php”、“Paris.blade.php”。 我试图在站点上实现一个搜索栏,我需要它作为结果返回视图(blade.php页面),而不是视图的内容。 e、 gwhere('views'、'LIKE'、“%$search\u query%”)。由于视图未存储在数据库中,这是否真的可能,如果可能,是否有人知道如何执行此操作?这里有一个通用函数,用于列出具有指定扩展名的任何文件,在本例中为.blade.php。它从$p
e、 g
where('views'、'LIKE'、“%$search\u query%”)
。由于视图未存储在数据库中,这是否真的可能,如果可能,是否有人知道如何执行此操作?这里有一个通用函数,用于列出具有指定扩展名的任何文件,在本例中为.blade.php
。它从$path
开始搜索,然后递归搜索找到的任何子目录
function findFileExtension_r($extension, $path, &$names = array()){
$files = array_diff(scandir($path), array('..', '.'));
foreach($files as $f){
$abs_path = $path.'/'.$f;
if(is_dir($abs_path)){ //directory, recurse
findFileExtension_r($extension, $abs_path, $names);
} else { //file, test if the name ends with $extension
$ext_length = strlen($extension);
if(substr($f, -$ext_length) === $extension){
$names[] = $f;
}
}
}
}
用法:
//set up some values
$find = '.blade.php';
$path = 'path/to/laravel/resources/views';
//$blade_templates = array(); //can be initialized, or named in the function call below.
//call function
findFileExtension_r($find, $path, $blade_templates);
//output
echo '<h2>Results</h2><pre>' . print_r($blade_templates, true) . '</pre>';
//设置一些值
$find='.blade.php';
$path='path/to/laravel/resources/views';
//$blade_templates=array()//可以在下面的函数调用中初始化或命名。
//调用函数
findFileExtension_r($find、$path、$blade_模板);
//输出
回应“结果”。打印($blade_模板,正确)。“”;
您实际上可以将刀片模板存储在数据库中,并通过SQL查询它们:如果视图未存储在数据库中,则必须指向路由中的视图,并且可以使用动态路由
public function show()
{
$slug = input::get('location');
$page = page::whereSlug($slug)->get();
return View::make('pages')->with('page', $page);
}
显示功能:
您可以编写一个递归函数来读取/resources/views和子文件夹中的所有foo.blade.php文件名,并将它们放入一个数组中。您好,我对php不太熟悉,所以我有点迷茫,'foo.blade.php'?。。。网上有什么例子你可以告诉我吗@Iarsanders看看如何在laravel中返回所有视图-嗨,我似乎做了一些错误,因为它抛出了一个错误,“缺少[Route:page.show][URI:countries/{canada}](View:/Users/ccg/testsite/resources/views/layouts/app.blade.php)所需的参数…”这就是我对路由“Route::get”所做的('countries/{canada}',数组('as'=>'page.show','uses'=>'PageController@show“));”对于搜索框,我已经等了一分钟。为什么是“{canada}”?该文件夹包含什么?我有一个名为“countries”的主视图文件夹,其中我有我需要的每个国家的子文件夹,例如加拿大,在加拿大文件夹中,我有一个index.blade.php文件以及其他城市…当我使用“Route::get('/{slug}')…缺少[Route:page.show][URI:{slug}]所需的参数时,它会抛出相同的错误…我还尝试将其更改为Route::get('/slug',array)('as'=>'page.show','uses'=>'PageController@show);但它会抛出错误“Class'App\Http\Controllers\page'not found”您不能使用“/slug”。可能有很多页。为什么不尝试将这些页存储在数据库中?您可以检索和显示。
public function show()
{
$slug = input::get('location');
$page = page::whereSlug($slug)->get();
return View::make('pages')->with('page', $page);
}