物联网:PHP-Laravel快速部署RESTful(二)

继上一节所讲的,假设你已经了解了一些laravel信息,那么下面我们来试一下简单的输出。以及可能遇到的问题解决方法。


1.试试简单输出


官方的指导写明了资源控制器的用法
Verb Path Action Route Name
GET /resource index resource.index
GET /resource/create create resource.create
POST /resource store resource.store
GET /resource/{resource} show resource.show
GET /resource/{resource}/edit edit resource.edit
PUT/PATCH /resource/{resource} update resource.update
DELETE /resource/{resource} destroy resource.destroy

添加到index,打开app/controller/AthomesController
在index函数下面写一个增加
echo "Hello,world"

打开浏览器,输入:host/laravel/public/athome,会看到输出Hello,World。也就是说athome是直接在Index上的。

注:有可能会出现错误,解决方法:

如果你得到以下页面:

物联网:PHP-Laravel快速部署RESTful(二)_第1张图片


这说明代码出错了。接下来我们修改 app/config/app.php 第一项为:

'debug' => true,

刷新页面。

错误信息还可能提示出来!就是某controller没找到。

物联网:PHP-Laravel快速部署RESTful(二)_第2张图片

不过,这个文件明明有呀。

这就涉及到了另一个问题,Laravel 中的 autoload 问题。这个类文件是存在的,而且顶部也声明了它所在的命名空间,还剩下最后一步:让 Laravel 知道。命令行运行:

composer dump-autoload

然后刷新页面,你会得到如下错误:

View [admin._partials.assets] not found. 

建立一个空文件即可,如果是用generator建的话,别忘了把里面默认的内容删掉哦。

再刷新页面,如果还有问题,我相信这个问题你可以自己解决。


2.试试添加seed(也就是向数据库里填东西)


打开app/database/seeds/DataSeeder.php,创建两个新的数据
class AthomesTableSeeder extends Seeder  
{  
    public function run()  
    {  
        Athomes::create(array(  
            'temperature'=>'19.8',  
            'sensors1'=>'22.2',  
            'sensors2'=>'7.5',  
            'led1'=>False  
        ));  
        Athomes::create(array(  
            'temperature'=>'18.8',  
            'sensors1'=>'22.0',  
            'sensors2'=>'7.6',  
            'led1'=>False  
        ));  
    }  
}  


运行以下命令更新数据库:
$ php artisan db:seed 
这时可以去phpmyadmin中查看是否有数据。

3.试试JSON输出


回到index函数,让我们输出json格式的数据
修改为:
public function index()  
{  
    $data=Athomes::all();  
        return Response::json($data);  
}  

浏览器打开地址host/laravel/public/athome,下面的数据是修改过的

是否看见有不同
[{"id":1,"temperature":19.799999237061,"sensors1":22.200000762939,"sensors2":7.5,"led1":0,"created_at":"2015-01-26 13:47:01","updated_at":"2015-01-26 13:47:01"},{"id":2,"temperature":18.799999237061,"sensors1":22,"sensors2":7.5999999046326,"led1":0,"created_at":"2015-01-26 13:47:01","updated_at":"2015-01-26 13:47:01"}]

用curl进行测试,现在不是很必要,不过也不影响我们继续
$ curl -X GET http://115.28.236.28/laravel/public/athome
Hello,world[{"id":1,"temperature":19.799999237061,"sensors1":22.200000762939,"sensors2":7.5,"led1":0,"created_at":"2015-01-26 13:47:01","updated_at":"2015-01-26 13:47:01"},{"id":2,"temperature":18.799999237061,"sensors1":22,"sensors2":7.5999999046326,"led1":0,"created_at":"2015-01-26 13:47:01","updated_at":"2015-01-26 13:47:01"}]
转载请注明来源于硬件浏览器-UIXO开发框架创始人黄涌(Daniel Hwang

你可能感兴趣的:(硬件浏览器与UIXO开发框架)