關於laravel的擷取器:get{xxxx}Attribute問題

來源:互聯網
上載者:User
關鍵字 laravel5.1 php php架構 laravel
問題是 下拉式功能表沒有被預設選中
在修改文章內容的介面,存在一個select的下拉式功能表:
( 已經在Form的頭部,綁定了對應的$article 模型)

    {!! Form::label('tag_list', 'Tags:') !!}    {!! Form::select('tag_list[]', $tags, null, ['class' => 'form-control', 'multiple']) !!}

並且,在Article模型中進行設定擷取器的方法:

public function getTagListAttribute ()    {        return $this->tags->lists('id');    }

在介面中,select的每個option都有正確的value值,但是卻沒有被選中.
然後想再問一下,使用laravel的Form的select,是不是就會自動去對應getTagListAttribute這個方法?? 對應的關係與select標籤的name屬性相關聯?

補充一下:

  1. 擷取器在文章列表頁可以得到對應的文章標籤id .

  2. 在編輯文章的時候, 文章的其他欄位如(標題,內容) 有對應的內容,模型模型的綁定是沒問題的

回複內容:

問題是 下拉式功能表沒有被預設選中
在修改文章內容的介面,存在一個select的下拉式功能表:
(已經在Form的頭部,綁定了對應的$article 模型)

    {!! Form::label('tag_list', 'Tags:') !!}    {!! Form::select('tag_list[]', $tags, null, ['class' => 'form-control', 'multiple']) !!}

並且,在Article模型中進行設定擷取器的方法:

public function getTagListAttribute ()    {        return $this->tags->lists('id');    }

在介面中,select的每個option都有正確的value值,但是卻沒有被選中.
然後想再問一下,使用laravel的Form的select,是不是就會自動去對應getTagListAttribute這個方法?? 對應的關係與select標籤的name屬性相關聯?

補充一下:

  1. 擷取器在文章列表頁可以得到對應的文章標籤id .

  2. 在編輯文章的時候, 文章的其他欄位如(標題,內容) 有對應的內容,模型模型的綁定是沒問題的

你這樣做是可以的,也是單選多選的通用寫法,屬性也是可以一一對應的。

但是你忘了一點,就是from頭也要用From輸出成model形式才可以。

laravel有什麼問題可以和我交流。

奧,你在lists後面再加上->all()方法,主要是這裡需要將collection轉成array

lists在laravel5中取出來的是collection資料結構,加上all之後取出來的是數組!

return $this->tags->lists('id')->all();

已經說的如此詳細了,再解決不了也不說了。

假設你儲存資料的變數叫$data,那麼select的name要和$data裡面的索引值要對應,也就是說$data存放tag的索引值叫tag_list,應該是這樣~
要是索引值是tag_id,那就要改成{!! Form::select('tag_id[]', $tags, null, ['class' => 'form-control', 'multiple']) !!}

@JellyBool 之前一直學的你的視頻 求助

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.