任何关于如何转换这个Laravel-5.1代码的想法。我在纯PHP中运行这段代码,我想用Laravel编写它,因为我在开发中使用了Laravel。向我介绍一个已经这样做过的教程,或者提供一个代码片段,将是非常感谢的。
<?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来加速建议。
<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>
发布于 2016-01-09 06:12:16
好吧,既然你要求用Laravel的方法来做事情,那么完成这件事的步骤就不多了。简而言之,您需要创建一个模型,2)更新您的routes.php
文件,3)创建一个控制器,以及(4)更新ajax调用以反映Laravel的路由约定。我建议使用命令行php artisan
命令来创建模型和控制器,因为它们将把必要的文件放置在正确的路径中,这样Laravel就可以为您自动加载它们。
php artisan make:model GeoName
模型,这将在app/GeoName.php
上创建一个模型,在该模型中,您需要更改表名以反映您的custome名称。app/Http/routes.php
文件以捕获AJAX请求。
Route::post('bootstrap/source','GeoNameController@ajaxQuery');
这将捕获到POST
请求到http://localhost:2222/bootstrap/cache
,在Laravel航线文件中还有更多。php artisan make:Controller GeoNameController --plain
创建控制器。平原用于停止典型CRUD请求类型的自动脚手架索引、创建、编辑、显示、更新和删除。这将创建文件app/Http/Controllers/GeoNameController.php
.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资源,还有很多需要学习的地方。祝好运!
https://stackoverflow.com/questions/34675286
复制相似问题