国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

October CMS - 快速入門 14 保存Form Widget的數(shù)據(jù)

GT / 2662人閱讀

摘要:下面修改部件,實(shí)現(xiàn)數(shù)據(jù)保存首先需要準(zhǔn)備數(shù)據(jù)變量,給小部件使用接下來就可以修改插件了現(xiàn)在顯示了演員表中的所有演員的名,但是,沒有顯示所有演員的姓。

上節(jié)我們只是建立了小插件,但是數(shù)據(jù)是模擬的,我們希望將數(shù)據(jù)存儲(chǔ)起來,那么我們就需要通過關(guān)聯(lián)表將數(shù)據(jù)與視頻表關(guān)聯(lián)并保存,下面我們打開Builder,創(chuàng)建演員表

【database】

【Models】

【Models】——【Forms】

【Models】——【Lists】

【Models】——【Backend Menu】

【Models】——【Controllers】

【Models】——【Backend Menu】設(shè)置URL

刷新頁面,然后選擇視頻,可以進(jìn)入演員編輯頁面:

添加演員數(shù)據(jù):

因?yàn)槲覀兦捌谑褂昧藃epeater字段存儲(chǔ)演員信息,這次我們將用數(shù)據(jù)庫存儲(chǔ)演員信息。所以需要將演員這個(gè)字段從視頻表中刪除。

下面我們將要建立一個(gè)中間表格作為視頻和演員的中間表實(shí)現(xiàn)多對(duì)多的關(guān)聯(lián)

接下來就需要建立視頻和演員表的多對(duì)多的關(guān)系、

File:pluginsraiseinfomoviesmodelsMovie.php

public $belongsToMany = [
    "genres" => [
        "RaiseinfoMoviesModelsGenre",    // 模型
        "table" => "raiseinfo_movies_movies_genres",    // 中間表
        "order" => "genre_title"
    ],
    "actors" => [
        "RaiseinfoMoviesModelsActor",    // 模型
        "table" => "raiseinfo_movies_actors_movies",    // 中間表
        "order" => "name"
    ]
];

File:pluginsraiseinfomoviesmodelsActor.php

public $belongsToMany = [
    "movies" => [
        "RaiseinfoMoviesModelsMovie",    // 模型
        "table" => "raiseinfo_movies_actors_movies",    // 中間表
        "order" => "name"
    ]
];

通過上述的代碼修改,就實(shí)現(xiàn)了Movies和Actors表的多對(duì)多的關(guān)聯(lián)關(guān)系。

下面修改部件,實(shí)現(xiàn)數(shù)據(jù)保存

首先需要準(zhǔn)備數(shù)據(jù)變量,給小部件使用
File:pluginsraiseinfomoviesformwidgetsActorbox.php

public function render()
{
    $this->prepareVars();
    dump($this->vars["actors"]);
    return $this->makePartial("widget");
}


public function prepareVars()
{
    $this->vars["id"] = $this->model->id;
    $this->vars["actors"] = Actor::all()->lists("name","id");
    
}

接下來就可以修改插件了pluginsraiseinfomoviesformwidgetsactorboxpartials_widget.htm






現(xiàn)在顯示了演員表中的所有演員的名,但是,沒有顯示所有演員的姓。我們需要在Actor中做適當(dāng)修改:pluginsraiseinfomoviesmodelsActor.php

/**
 * 訪問器的命名對(duì)應(yīng)的就是full_name
 * @return string
 */
public function getFullNameAttribute()
{
    return $this->name." ".$this->lastname;
}

File:pluginsraiseinfomoviesformwidgetsActorbox.php

public function prepareVars()
{
    $this->vars["id"] = $this->model->id;
    $this->vars["actors"] = Actor::all()->lists("full_name","id");
    
}

這樣顯示的就會(huì)有姓和名了。

為了在前端頁面上顯示演員的信息,我們需要對(duì)select進(jìn)行設(shè)置
File:pluginsraiseinfomoviesformwidgetsActorbox.php

public function prepareVars()
{
    $this->vars["id"] = $this->model->id;
    $this->vars["actors"] = Actor::all()->lists("full_name","id");
    $this->vars["name"] = $this->formField->getName()."[]";
}

File:pluginsraiseinfomoviesformwidgetsactorboxpartials_widget.htm

File:themesraiseinfopagesmovie-single.htm

演員

{% for actor in record.actors %} {{ actor.name }} {{ actor.lastname }} {% endfor %}

刷新前端頁面:

通過上面的測試,我們已經(jīng)知道,演員信息已經(jīng)存儲(chǔ)到數(shù)據(jù)庫了,在前端也顯示出來。下面我們刷新后臺(tái)頁面,打開編輯視頻信息。我們發(fā)現(xiàn)存儲(chǔ)的演員信息并沒有顯示在Select中。

這是因?yàn)槲覀儧]有設(shè)置顯示選定的值。
File:pluginsraiseinfomoviesformwidgetsActorbox.php

public function prepareVars()
{
    $this->vars["id"] = $this->model->id;
    $this->vars["actors"] = Actor::all()->lists("full_name","id");
    $this->vars["name"] = $this->formField->getName()."[]";
    // 下面一行
    $this->vars["selectedValues"] = $this->getLoadValue();
}

File:pluginsraiseinfomoviesformwidgetsactorboxpartials_widget.htm

好的,現(xiàn)在我們已經(jīng)可以顯示已選擇的演員了,但是,我們?nèi)绻庉嬕粋€(gè)沒有設(shè)置演員的視頻:

解決問題的辦法是:
File:pluginsraiseinfomoviesformwidgetsActorbox.php

public function prepareVars()
{
    $this->vars["id"] = $this->model->id;
    $this->vars["actors"] = Actor::all()->lists("full_name","id");
    $this->vars["name"] = $this->formField->getName()."[]";
    if(!empty($this->getLoadValue())){
        $this->vars["selectedValues"] = $this->getLoadValue();
    }else{
        $this->vars["selectedValues"] = [];
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28880.html

相關(guān)文章

  • October CMS - 快速入門 15 - 通過Form Widget添加新數(shù)據(jù)

    摘要:我們將采用方式完成,在提交保存視頻之前,通過方式實(shí)現(xiàn)提前于保存視頻之前,保存演員信息。我們?cè)僭跀?shù)據(jù)庫中確認(rèn)一下下面,我們對(duì)輸入的用戶姓名進(jìn)行分離。 我們?cè)囍苯釉赟elect中輸入新的演員showImg(https://segmentfault.com/img/bVbcqpZ?w=386&h=276); 點(diǎn)擊保存 showImg(https://segmentfault.com/img...

    wing324 評(píng)論0 收藏0
  • October CMS - 快速入門 5 創(chuàng)建插件

    摘要:創(chuàng)建插件對(duì)于來講是很簡單的事情,因?yàn)椋峁┝艘粋€(gè)插件構(gòu)建器具體步驟這里就不贅述了。安裝完成后,會(huì)出現(xiàn)上圖所示的菜單創(chuàng)建自己的插件的方法是點(diǎn)擊如下圖所示的小按鈕。 創(chuàng)建插件對(duì)于October來講是很簡單的事情,因?yàn)椋琌ctober提供了一個(gè)插件構(gòu)建器:RainLab.Builder showImg(https://segmentfault.com/img/bVbcoxL?w=1266&h...

    macg0406 評(píng)論0 收藏0
  • October CMS - 快速入門 13 建立自定義Form Widgets

    摘要:所以,實(shí)際上我們沒有辦法保存這些信息。下一節(jié)我們將解決這個(gè)問題。 在上一節(jié)中我們是使用repeater字段存儲(chǔ)演員信息的,當(dāng)然這不是最佳的方式,我們希望,演員的信息能夠存儲(chǔ)在單獨(dú)的表中,而且演員的信息可能需要更多的字段進(jìn)行存儲(chǔ)。然后將演員表和其他表進(jìn)行關(guān)聯(lián),就好像視頻表和風(fēng)格表之間的關(guān)聯(lián)一樣。 showImg(https://segmentfault.com/img/bVbcpEb?w...

    myshell 評(píng)論0 收藏0
  • October CMS - 快速入門 12 Repeater字段

    摘要:字段是采取數(shù)據(jù)存儲(chǔ)多條數(shù)據(jù)的字段。這樣演員信息就被保存到了數(shù)據(jù)庫的字段中,以格式存儲(chǔ)。查看數(shù)據(jù)庫即可印證上述的結(jié)論。這里通過這個(gè)例子只是說明這種字段的用法。 Repeater字段是采取Json數(shù)據(jù)存儲(chǔ)多條數(shù)據(jù)的字段。 【Builder】——【Database】——【raiseinfo_movies_】為表添加一個(gè)新的列:actorsshowImg(https://segmentfaul...

    Richard_Gao 評(píng)論0 收藏0
  • October CMS - 快速入門 6 基本模板

    摘要:本節(jié)將編寫一些實(shí)現(xiàn)對(duì)頁面中內(nèi)容的控制。將內(nèi)容放入容器文件添加類,讓輸出的內(nèi)容在一個(gè)容器中。創(chuàng)建菜單編輯點(diǎn)擊菜單此頁沒有頭和尾,是因?yàn)槲覀儧]有給這個(gè)頁面使用布局再次查看頁面,則顯示正常了為當(dāng)前頁面菜單添加樣式 本節(jié)將編寫一些css實(shí)現(xiàn)對(duì)頁面中內(nèi)容的控制。 將內(nèi)容放入容器 文件:themesraiseinfolayoutsdefault.htm ...

    littleGrow 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<