在Laravel 4中创建一个由关系填充的表单字段

时间:2013-06-19 23:50:46

标签: laravel laravel-4

我正在尝试为Happening构建一个表单。 Happening通过place_id引用了Places表格。

e.g。发生在“OktoberFest”的地方有一个place_id 123,表格对应于慕尼黑的地方

这些是模型中声明的关系:

对于模特地点:

public function happenings()
{
    return $this->hasMany('Happening');
}

对于模型发生:

public function place()
{
return $this->belongsTo('Place');
}

模型Happening有一个place_id字段,将其链接到Place。

我也在使用{{Form::model($happening, array('route' => array('happenings.update', $happening->id)...}}作为表格开头

问题1:如何创建一个{{Form::text('......')}},在编辑正在发生的慕尼黑啤酒节时,将正确预装慕尼黑?

问题2:我试图让该字段作为ajax autosuggest工作(即只要输入3个字符就开始从Places表中提取建议)。我已经检查了一些实现,但它们似乎与问题1

无法正确混合

为了尝试解决问题1 ,我在这里尝试了解决方案 Laravel 4 Form builder Custom Fields Macro

但我无法让它发挥作用。

很长的问题,这是我第一次关于堆栈溢出,请耐心等待:)

1 个答案:

答案 0 :(得分:1)

如果通过列' place_id'将正在发生的事件与Place相关联。你必须提供一个id来保存在你的模型/表中。 我可以想到几种方法:

  • 在选择的广播中列出可用的地方列表,名称将为' place_id',值为地方的ID,如值的标题。

  • 如果您有很多地方,
  • 而不是显示广播或选择具有自动完成功能的文本字段是一个很好的解决方案。我不会详细介绍如何实现它,但一般的想法是自动填写输入的地名和选择该地点,将该地点的ID放在名为' placement_id'的隐藏字段中。

保存表单后,使用发布的place_id保存模型 (并检查该ID是否有效和现有,从不信任用户输入)