【发布时间】:2014-01-08 05:06:01
【问题描述】:
在laravel中,有没有办法在表单中嵌套相关资源?
说我有这个:
class Person extends Eloquent {
public function addresses() {
return $this->hasMany("Address");
}
}
class Address extends Eloquent {
public function person() {
return $this->belongsTo("Person");
}
}
我想要一个Person 表单来收集有关Person 的Addresses 的信息。 laravel 是否以类似于 Rails 的 accepts_nested_attributes_for :address 和 fields_for :address 的方式促进这一点?
我想要一些简单的东西,我可以在Person 表单的结果中包含Address 字段,因为除了Person 之外,Address 并不真正存在。这有意义吗?
== 编辑 ==
这是假设代码
我正在寻找类似于这样的东西:
{{ Form::model(new Person, array("action" => "admin\PersonController@store", "method" => "POST")) }}
{{ Form::text("name", array(...)) // <input name='person[name]' ... /> }}
{{ Form::email("email", array(...)) // <input name='person[email]' ... /> }}
{{ Form::fields_for("addresses"/* Would be name of relation */) }}
{{ Form::text("street_address") // <input name='person[addresses][][street_address]' ... /> }}
{{ Form::close_fields() }}
{{ Form::close() }}
【问题讨论】:
-
不太清楚你在这里得到了什么。您是在将地址列表拉入表单或其他内容的选择框之后吗?另一方面,虽然您在定义关系时几乎可以调用任何方法,但我会将“人”命名为“人”,因为只有一个人属于一个地址,而不是多个人。
-
我想在创建 Person 的同时创建一个地址,使用相同的表单。
-
Address::persons是一个错字。固定
标签: php ruby-on-rails laravel laravel-4