2
是否可以使用自定義Form::macro()
和Form::model()
功能?Laravel 4:Form :: macro with Form :: model
當我第一眼看到它時,我無法將模型數據傳遞給宏方法。
是否可以使用自定義Form::macro()
和Form::model()
功能?Laravel 4:Form :: macro with Form :: model
當我第一眼看到它時,我無法將模型數據傳遞給宏方法。
只有Form :: text這樣的函數會自動尋找表單模型。在你的宏裏面,你可以通過幾種方法做到這一點。最簡單的就是使用Form::getValueAttribute($name)
。例如:
Form::macro('myField', function() {
$value = Form::getValueAttribute('username');
return "<input type='text' name='username' value=$value >";
});
然後你會在刀片模板像這樣使用它:
<?php
$user = new User;
$user->username = "bob";
echo Form::model($user);
echo Form::myField();
echo Form::close();
?>
你可以找到所有可用的形式功能的源代碼在這裏:
太棒了。正是我在找的東西。謝謝託尼。 – cmfolio
你是說你試圖製作一個Form :: macro()函數來調用它內部的Form :: model嗎? – TonyArra
不,如果我使用'Form :: model()'編輯表單,但表單內部是一個自定義的'Form :: macro()'。在宏函數內部時,我無法訪問模型中的數據。除非我錯過了某些東西...... – cmfolio
如果您在宏內部所做的只是輸出純HTML,那麼該領域實際上無法與模型進行交互。 HTML按原樣打印。對於模型屬性的請求是在Form :: input函數內部完成的,每次調用Form :: text函數時都會調用它。因此,在您的Macro內部,基本上只是一個自定義函數,您需要自己請求模型屬性。 – TonyArra