[英]Laravel form model binding, related table value
事情是关于输入字段,并使用Form::model()
绑定检索相关数据。 我怎样才能做到这一点? 文本输入qty
上的绑定结果为空。 我正在考虑是否可以通过model()
...来进行hack工作?
{{ Form::model($product, array(
'method' => 'PATCH',
'route' => array('products.update', $product->id),
'class' => 'form-inline'
)) }}
{{ Form::label('name', 'Name:') }}
{{ Form::text('name') }}
{{ Form::label('qty', 'Price:') }}
{{ Form::text('qty') }} <!-- here's da thing! -->
{{ Form::submit('Update', array('class' => 'btn btn-info')) }}
{{ Form::close() }}
class ProductsController extends BaseController {
public function edit($id) {
$product = Product::find($id);
if (is_null($product)) return Redirect::route('products.index');
return View::make('products.edit', compact('product'));
}
}
class Product extends Eloquent {
public $timestamps = false;
protected $fillable = array('name');
public function prices() {
return $this->hasMany('Price');
}
public function images() {
return $this->morphMany('Image', 'imageable');
}
}
class Price extends Eloquent {
protected $table = 'product_prices';
public $timestamps = true;
protected $fillable = array('qty');
public static $rules = array(
'qty' => 'required|numeric'
);
public function product() {
return $this->belongsTo('Product');
}
}
您确定您的$product
有数据吗?
Route::get('/test', function() {
$user = new User;
$user->email = 'me@mydomain.com';
return View::make('test', compact('user'));
});
查看(test.blade.php):
{{ Form::model($user, array(
'method' => 'PATCH',
)) }}
{{ Form::label('email', 'E-mail:') }}
{{ Form::text('email') }} <!-- here's da thing! -->
{{ Form::submit('Update', array('class' => 'btn btn-info')) }}
{{ Form::close() }}
结果:
Laravel表单模型绑定,相关表值:
Route::patch('dashboard/product/{id}', [
'uses' => 'Dashboard\Product\ProductController@update',
'as' => 'dashboard.products.update'
]);
在显示形式中编辑:
{{ Form::model($product, array(
'method' => 'PATCH',
'route' => array('dashboard.products.update', $product->id),
)) }}
//enter code here
{{ Form::close() }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.