有史以來的第一篇文章:)我正在學習Laravel 5,並且想要做一些「正確的方式」。Laravel用不同方法實現模型的邏輯
我想用php/Laravel管理我所有的家庭自動化系統,即閃電。
我有許多類型的閃電控制,即X10,Philips Hue和Belkin WeMo。每種類型都有不同的方式來打開/關閉/亮度/等。
我現在有一個"type" = hue||wemo||x10
「光」的模式,但我不想做的事:
class Light extends Model
{
function off()
{
switch $this->type
{
case'x10': x10_close_light($this->address); break;
case'hue': hue_close_light($this->address); break;
case'wemo': wemo_close_light($this->address); break;
}
}
}
我寧願有一個像接口:
interface LightInterface
{
function close();
function open();
function dim($value);
function get_status();
etc...
}
然後,讓針對每種雷電的不同類別和/或方法。
我讀過關於雄辯的關係(一對一,多態和其他),但我沒有看到這裏的大圖。
在Laravel 5/Eloquent中做到這一點的正確方法是什麼?
你如何開啓或關閉數據庫管理這個角度我是說你有沒有在數據庫中的哪些值像1或0爲關閉等任何領域? –
我在數據庫中有一個布爾型的「is_on」字段,用於所有指示燈,並且每次觸發手動開啓/關閉操作時都會更新此值。我還有一個cron工作,爲wemo和hue燈更新這個值,因爲他們可以按需返回狀態,但不是x10。所有東西都是用命令行來控制的,每種類型的燈都有不同的命令,我需要的是一種簡單的方法,在任何類型的燈光下從我的LightsController中簡單調用$ Light-> open(),並且觸發相應的命令(不使用'開關'或'如果'在'類型'上)。 –