今天來學習怎麼寫頁面
例如這樣
class schoolclass extends dataobject
2、然後更新資料庫,訪問db/build/?flush=1的這個位址,你想要的資料庫就會建好了
3、需要些前端的頁面了,乙個web頁面,最基本的操作就是有些文字框可以提交,首先學習怎麼寫這些web元素
文字框就是textfield,如下
$usertext = new textfield(
$name = "name",
$title = "name",
$value = "please enter your name"
);$usertext就是這個元素的名字,$name就是這個文字框的名字,這個用在獲取該文字框post的值的時候用到,$title這個是顯示在文字框旁邊的文字提示,$value就是寫在文字框裡的內容
除此以外還有,密碼型別:passwordfield,文字域textareafield等類似的,可以檢視ss的官網api獲取http://doc.silverstripe.com/doku.php?id=form-field-types
值的提出的是單選框和hidden型別
單選框以下為例
$userclassfield = new optionsetfield(
$name = "chooseclass",
$title = "選擇班級",
$source = $clist,
$value = $chosed
);別的都不多說了,單說一下$source,這個值是乙個陣列,形式是這樣的
$clist = array (
1=>"orange"
陣列的序號就是每個單選框的值,後面的內容就會顯示成為單選框的內容,
$value 就是該單選框的值,基本上就是乙個數字,指的是所選的單選框的值即可
hidden 主要是為了隱藏傳送一些值,用法:
$hiddentext = new hiddenfield (
$name = "hidden",
$title = "title",
$value = "" );
意義與之前的文字框等一樣,
下面就要構造頁面了,將之前構造好的頁面的各個元素,全都放到fieldset裡去
如:$fields = new fieldset($classnamefield,$gradenumber,$provincefield,$countryfield);
括號裡的全是上文中構造好的頁面元素的名字
$actions = new fieldset(
new formaction('doclassinfoform', 'submit')
);這個是提交頁面的動作,表示用函式doclassinfoform來完成提交的動作,下文要構造好這麼個doclassinfoform提交函式,當然,函式名可以隨便起
return new form($this, 'classinfoform', $fields, $actions);
這個就是該函式classinfoform最後的返回,包括提交的元素,動作等
另外可以新增這麼乙個呼叫$validator = new requiredfields('name', 'password');
這樣頁面會檢驗括號裡的元素是不是為空,如果是空的就會報錯,括號裡的就是元素的文字框名稱,跟元素名不一樣,下面就是構造提交的函式了doclassinfoform
function doclassinfoform()中間的函式體不再細說跟一般的php沒啥區別,該獲取post指就獲取,該運算元據庫就操作
這樣我們乙個可以提交的頁面就產生了,但是還沒有結束
我們還需要通過模板使我們的頁面顯示出來
在模板的路徑/templates/lauout裡寫乙個跟提交頁面同名的.ss模板檔案
檔案裡只需要呼叫你需要的函式就可以了,例如,我的php頁面叫做classform.php,裡面的構造頁面的函式叫做classinfoform,那麼我的模板頁面就叫做classform.ss,裡面寫入
$classinfoform
就可以了,然後從ss的後天建立乙個新的頁面,就是這個classform.ss,把它的pagetype指為classform這樣就可以在web端看到了
SilverStripe建立新的模板
今天在學習silverstripe的東西,沒什麼資料,很暈,做mvc的設計有點捉不到頭緒,自己邊看官網的文件便自己操作,整理出來,以作備忘 首先需要建立乙個新的page type 我們在ss系統中,建立乙個新的頁面需要選擇乙個page type,ss將會尋找相應的模板。因此第一步是建立乙個新的pag...
JavaScript學習筆記 建構函式的繼承
現在有乙個 動物 物件的建構函式 function animal 還有乙個 貓 物件的建構函式 function cat name,color 怎樣才能使 貓 繼承 動物 呢?function cat name,color var cat1 newcat 大毛 黃色 console.log cat1...
Typescript學習記錄 回顧ES5繼承
b類繼承a類的方法 function a name run a.prototype.age 21 a.prototype.coding function coding var a newa aaa a.run a.coding es5的繼承,b繼承a function b name 繼承a原型鏈的拷...