最小物聯網系統(四)——詳解Laravel的RESTful
最小物聯網系統(三)——建立RESTful 如果你沒有看懂之前最後的程式碼,那麼我就簡要的說說:
首頁——index
開啟b.phodal.com我們會看到
[{"id":1,"temperature":14,"sensors1":12,"sensors2":12,"led1":1,"created_at":"2013-12-05 12:32:32","updated_at":"2013-12-24 05:50:02"}, {"id":2,"temperature":12,"sensors1":12,"sensors2":12,"led1":1,"created_at":"2013-12-21 16:07:28","updated_at":"2013-12-21 16:07:28"}]
這個就是返回效果,我們只需要在上面寫。在AthomesController.php上面的話就是index() 函式裡面。 Laravel返回JSON資料是比較簡單的
public function index()
{
$maxid=Athomes::all();
return Response::json($maxid);
}
其實原本不需要這麼麻煩的,不過這樣寫容易懂。
建立頁——create
http://b.phodal.com/athome/create可以看看這裡,一個比較簡單的頁面示例,不過這裡用到了模板,我們過後再講講這個模板。
public function create()
{
$maxid=Athomes::max('id');
return View::make('athome.create')->with('maxid',$maxid);
}
建立的程式碼似乎太簡單了,但是我們忽略了其中 的athome.create這個其實是一個模板,位於
app/views/athome/create.blade.php
這些就有些不好講,當然我們先用簡單的post來做這個,忽略掉這部分吧。
儲存——store
這一部分主要是由create來做的,也就是CRUD中的C
public function store()
{
// validate
// read more on validation at http://laravel.com/docs/validation
$rules = array(
'led1'=>'required',
'sensors1' => 'required|numeric|Min:-50|Max:80',
'sensors2' => 'required|numeric|Min:-50|Max:80',
'temperature' => 'required|numeric|Min:-50|Max:80'
);
$validator = Validator::make(Input::all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::to('athome/create')
->withErrors($validator)
->withInput(Input::except('password'));
} else {
// store
$nerd = new Athomes;
$nerd->sensors1 = Input::get('sensors1');
$nerd->sensors2 = Input::get('sensors2');
$nerd->temperature = Input::get('temperature');
$nerd->led1 = Input::get('led1');
$nerd->save();
// redirect
Session::flash('message', 'Successfully created athome!');
return Redirect::to('athome');
}
}
程式碼似乎有點長,不過這點程式碼也就是先驗證資料再儲存。 以sensors1為例
'sensors1' => 'required|numeric|Min:-50|Max:80',
語句的意思是sensors1是必需的,是一個數字,最小-50,最大80,很容易理解吧。接著的
$validator = Validator::make(Input::all(), $rules);
也就是用於驗證輸入,當驗證成功的時候,進行儲存。
更新——update
大致和上面的create類似,由於不同的是上面的nerd是New,而上面是根據id
$nerd = Athomes::find($id);
刪除——destory
如果能理解上面的update下面的delete也能理解了。
public function destroy($id)
{
// delete
$athome = Athomes::find($id);
$athome->delete();
if(is_null($athome))
{
return Response::json('Todo not found', 404);
}
// redirect
Session::flash('message', 'Successfully deleted the nerd!');
return Redirect::to('athome');
}
編輯——edit
和create一樣用的是模板,
public function edit($id)
{
// get the nerd
$athome = Athomes::find($id);
// show the edit form and pass the nerd
return View::make('athome.edit')
->with('athome', $athome);
}
模板的任務就交給下一篇吧。
展示——show
這個是按照id來展示的, 如
athome/1
就是列出這個,返回的也是json資料,為了方便其他,當成一個介面。
public function show($id)
{
$myid=Athomes::find($id);
$maxid=Athomes::where('id','=',$id)
->select('id','temperature','sensors1','sensors2','led1')
->get();
return Response::json($maxid);
}
相關文章
- 最小物聯網系統(五)——Laravel RESTful模板化LaravelREST
- 最小物聯網系統(三)——建立RESTfulREST
- 最小物聯網系統(二)——RESTful(一)Laravel安裝與資料庫設定RESTLaravel資料庫
- 最小物聯網系統——Dashboard
- 最小物聯網系統設計——給Laravel新增測試Laravel
- 最小物聯網系統(六)——Ajax打造視覺化視覺化
- 最小物聯網系統(九)——Android客戶端Android客戶端
- 最小物聯網系統(七)——與伺服器通訊伺服器
- 最小物聯網系統(八)——與微控制器通訊
- 物聯網作業系統列表作業系統
- 縱論物聯網(六):基於Linux的物聯網作業系統Linux作業系統
- 騰訊物聯網作業系統正式開源,最小體積僅1.8KB作業系統
- 物聯網資料卡系統原始碼——物聯網的主要應用領域原始碼
- 工業物聯網智慧儲能系統解決方案
- 農田水利工程物聯網系統解決方案
- 物聯網系統時代:iOS、安卓拜拜?iOS安卓
- 當物聯網系統出現故障:使用低質量物聯網資料的風險
- 物聯網資料卡系統原始碼——物聯網技術架構圖原始碼架構
- 物聯網+分析,打造穩定可靠的電網系統
- 小型水庫監測預警物聯網系統解決方案
- 01-物聯網專案-物美智慧-系統搭建
- 物聯網應用之 - 智慧搜尋系統
- MQTT 安全解析:構建可靠的物聯網系統MQQT
- 縱論物聯網(五):除了Linux,還有什麼物聯網作業系統Linux作業系統
- 物聯網作業系統安全性分析作業系統
- AliOS Things物聯網作業系統iOS作業系統
- 物聯網開發系統有什麼作用?
- 物聯網時代,智慧家居系統的具體介紹
- 5分鐘課程:物聯網的系統設計
- NB-IOT物聯網系統的安全架構架構
- Laravel核心解讀–Database(四) 模型關聯LaravelDatabase模型
- 現代農業之智慧農業物聯網系統解決方案
- 雨水情自動監測預警物聯網系統解決方案
- 工業物聯網解決方案:露天礦山雨量監測系統
- 智慧農業解決方案:溫室智慧監控物聯網系統
- 【物聯網】物聯網時代,傳統企業終會奪回自己的天下!
- 你瞭解物聯網嗎
- 對物聯網的誤解有哪些