Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中搜索视图_Php_Sql_Laravel_Views_Blade - Fatal编程技术网

Php 在Laravel中搜索视图

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

我在一个网站上工作,我有一张我需要的每个城市的地图,例如“London.blade.php”、“Paris.blade.php”。 我试图在站点上实现一个搜索栏,我需要它作为结果返回视图(blade.php页面),而不是视图的内容。
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);
}