成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

GT / 2664人閱讀

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

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

【database】

【Models】

【Models】——【Forms】

【Models】——【Lists】

【Models】——【Backend Menu】

【Models】——【Controllers】

【Models】——【Backend Menu】設置URL

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

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

因為我們前期使用了repeater字段存儲演員信息,這次我們將用數(shù)據(jù)庫存儲演員信息。所以需要將演員這個字段從視頻表中刪除。

下面我們將要建立一個中間表格作為視頻和演員的中間表實現(xiàn)多對多的關聯(liá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"
    ]
];

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

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

首先需要準備數(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中做適當修改:pluginsraiseinfomoviesmodelsActor.php

/**
 * 訪問器的命名對應的就是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");
    
}

這樣顯示的就會有姓和名了。

為了在前端頁面上顯示演員的信息,我們需要對select進行設置
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)存儲到數(shù)據(jù)庫了,在前端也顯示出來。下面我們刷新后臺頁面,打開編輯視頻信息。我們發(fā)現(xiàn)存儲的演員信息并沒有顯示在Select中。

這是因為我們沒有設置顯示選定的值。
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)绻庉嬕粋€沒有設置演員的視頻:

解決問題的辦法是:
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"] = [];
    }
}

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28880.html

相關文章

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

    摘要:我們將采用方式完成,在提交保存視頻之前,通過方式實現(xiàn)提前于保存視頻之前,保存演員信息。我們再在數(shù)據(jù)庫中確認一下下面,我們對輸入的用戶姓名進行分離。 我們試著直接在Select中輸入新的演員showImg(https://segmentfault.com/img/bVbcqpZ?w=386&h=276); 點擊保存 showImg(https://segmentfault.com/img...

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

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

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

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

    myshell 評論0 收藏0
  • October CMS - 快速入門 12 Repeater字段

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

    Richard_Gao 評論0 收藏0
  • October CMS - 快速入門 6 基本模板

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

    littleGrow 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<