我想在cakephp 3中爲多選擇下拉菜單創建一個自定義數據類型。我在我的形式multiple => true
控制:Cakephp 3:自定義數據類型不能正常工作
- PHP
- HTML
- CSS
當我提交此表,我獲取該控件作爲一個數組(0 => PHP, 1 => HTML
)的值,這是沒有問題,現在我想保存字符串格式的這些值像這樣PHP,HTML
並再次作爲數組檢索。
該輸入的保存進行得很順利,但僅以string
的形式檢索數據。爲此,我跟了這answer和創建一個自定義的數據類型:
class MultiSelectType extends Type
{
public function toPHP($value, Driver $driver)
{
if (!$value) {
return null;
}
return explode(',', $value);
}
public function marshal($value)
{
return explode(',', $value);
}
public function toDatabase($value, Driver $driver)
{
return implode(',', $value);
}
public function toStatement($value, Driver $driver)
{
if ($value === null) {
return PDO::PARAM_NULL;
}
return PDO::PARAM_STR;
}
}
如何修改這個代碼
得到
array
回到讓自己的形式將從多發選擇框會自動選擇值。得到
string
只要我想顯示該值爲一個字符串。
首先,爲什麼?爲什麼不使用正確的'1:n',或者更好的'n:m'相關聯? – ndm
@ndm該數據沒有太多的意義,只是在視圖模式下顯示它作爲一個字符串,這就是爲什麼我沒有正常化它 –
但爲了更乾淨的代碼,我試圖做到這一點... –