【问题标题】:creating a form field populated by a relationship in Laravel 4在 Laravel 4 中创建一个由关系填充的表单字段
【发布时间】:2013-06-19 23:50:45
【问题描述】:

我正在尝试为发生事件构建一个表单。 Happening 引用了 place_id 的 Places 表。

例如正在发生的“OktoberFest”有一个 place_id 123,对应于表 Places to München

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

模型地点:

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

对于模型发生:

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

model Happening 有一个 place_id 字段将其链接到 Place。

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

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

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

没有正确混合

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

但我无法让它工作。

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

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    如果发生事件通过“place_id”列链接到地点,您必须提供一个 ID 以保存在您的模型/表格中。 我能想到几种方法:

    • 在 select 的收音机中列出可用的 Places,名称将是“place_id”,值是 Place 的 id,类似于值的标题。

    • 如果你有很多地方,而不是显示收音机或选择具有自动完成功能的文本字段是一个很好的解决方案。我不会详细介绍如何实现它,但总体思路是自动完成键入的地名并在选择该地点时将该地点的 id 放在名为“placed_id”的隐藏字段中

    保存表单后,使用发布的 place_id 保存您的模型 (并检查该 id 是否有效且存在,切勿信任用户输入)

    【讨论】:

    • 罗布,谢谢。由于这些地方大约有 45000 个,接下来的步骤之一就是实现自动完成。我睡在上面,我得出了与你类似的解决方案。现在我需要解决 ajax-bootstrap 自动完成问题(这方面不是很专家,但似乎有一些 tuts 周围)并确保正确填充该字段..再次感谢
    • 再次感谢。我还发现这个fusiongrokker.com/post/… 看起来也很完整。这个周末我会深入研究这两个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2020-02-03
    • 1970-01-01
    • 2019-01-29
    相关资源
    最近更新 更多