silverstripe學習(繼續)

2021-04-28 08:02:41 字數 2107 閱讀 9370

今天來學習怎麼寫頁面

例如這樣

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原型鏈的拷...