首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Laravel-5.1格式重写纯PHP代码

用Laravel-5.1格式重写纯PHP代码
EN

Stack Overflow用户
提问于 2016-01-08 10:53:31
回答 1查看 1.2K关注 0票数 1

任何关于如何转换这个Laravel-5.1代码的想法。我在纯PHP中运行这段代码,我想用Laravel编写它,因为我在开发中使用了Laravel。向我介绍一个已经这样做过的教程,或者提供一个代码片段,将是非常感谢的。

代码语言:javascript
运行
复制
<?php
    if(isset($_POST['query'])){

        mysql_connect('localhost', 'root', '');
        mysql_select_db('tradersmart');
        $query = $_POST['query'];
        $sql = mysql_query("SELECT name, timezone_id FROM geonames_names WHERE name LIKE '%{$query}%'");
        $arrayName = array();
        $arrayTimezone = array();
        while($row = mysql_fetch_assoc($sql)){
            $arrayName[] = $row['timezone_id'];
            $arrayTimezone[] = $row['name'];
        }
        echo json_encode($arrayName  +$arrayTimezone);
    }
?>

THis是HTML :它使用JSon和typeahead来加速建议。

代码语言:javascript
运行
复制
<body>
        <div class="well">
            <input type="text" class="css-input" id="typeahead" data-provider="typeahead">
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
        <script type="text/javascript" src="js/bootstrap.js"></script>

        <script>
            $(function(){
                $('#typeahead').typeahead({
                    source: function(query, process){
                        $.ajax({
                            url: 'http://localhost:2222/bootstrap/source.php',
                            type: 'POST',
                            data: 'query=' +query,
                            dataType: 'JSON',
                            async: true,
                            success: function(data){
                                process(data);
                            }
                        });
                    }
                });
            });
        </script>
    </body>
EN

回答 1

Stack Overflow用户

发布于 2016-01-09 06:12:16

好吧,既然你要求用Laravel的方法来做事情,那么完成这件事的步骤就不多了。简而言之,您需要创建一个模型,2)更新您的routes.php文件,3)创建一个控制器,以及(4)更新ajax调用以反映Laravel的路由约定。我建议使用命令行php artisan命令来创建模型和控制器,因为它们将把必要的文件放置在正确的路径中,这样Laravel就可以为您自动加载它们。

  1. 从命令行运行php artisan make:model GeoName模型,这将在app/GeoName.php上创建一个模型,在该模型中,您需要更改表名以反映您的custome名称。
  2. 更新app/Http/routes.php文件以捕获AJAX请求。 Route::post('bootstrap/source','GeoNameController@ajaxQuery'); 这将捕获到POST请求到http://localhost:2222/bootstrap/cache,在Laravel航线文件中还有更多。
  3. 在命令行中使用php artisan make:Controller GeoNameController --plain创建控制器。平原用于停止典型CRUD请求类型的自动脚手架索引、创建、编辑、显示、更新和删除。这将创建文件app/Http/Controllers/GeoNameController.php
  4. 最后,在jQuery ajax请求中,删除请求调用中的.php。由于您永远不会在Laravel中直接调用url: 'http://localhost:2222/bootstrap/source'文件,所以路由文件处理应用程序的所有目的地。

值得注意的是,(1)您的数据库应该使用.env and app/config.php文件进行配置,(2) Laravel将自动检测到jQuery ajax函数是否需要JSON响应,因此Laravel将提供它所要求的内容。

您可能会遇到XSFR令牌权限问题,您可以在这里了解如何在Laravel博士中解决这个问题。如果你还不知道,Laravel的主文档是很棒的!

当然,关于使用Laravel和许多优秀的Laravel资源,还有很多需要学习的地方。祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34675286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档