【问题标题】:Laravel 4 typeaheadLaravel 4 预输入
【发布时间】:2013-08-06 20:20:44
【问题描述】:

是否可以使用 Laravel 模型进行预先输入? 类似:

        <input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="1"
   data-source='["User::all()"]'>

如果是,您能否提供一些小教程或澄清一下?

提前致谢。

【问题讨论】:

  • $users=User::all() 返回一个对象,可能您需要将其转换为数组,您可以尝试类似$udata=array();foreach($users as $user)array_push($udata,$user-&gt;name);endforeach$udatait 传递到您的视图,然后在您的视图中data-source='{{$udata}}'
  • 不可能,你把&lt;input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="1" data-source='&lt;?print_r($udata);?&gt;'&gt;放在你的视图文件里了吗?
  • 试试这个我更新了data-source partpaste.laravel.com/Ida

标签: html twitter-bootstrap laravel laravel-4


【解决方案1】:

为此使用 Blade 模板引擎。

UserController.php

/* ... */
public function getUsers() 
{
    $users = User::all(array('name'));
    return View::make('users.show')->with('users', $users);
}

show.blade.php

<input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="1" data-source='{{ json_encode($users) }}'>

【讨论】:

  • 我认为这行不通,因为 $users 是一个对象,而 typeahead 需要一个数组或函数。 BTW with() 不接受双箭头
  • @JanP。感谢您的回答,但它不起作用。我收到某种语法错误:Argument 1 passed to Illuminate\Database\Grammar::columnize() must be of the type array, string given, called in C:\Users\E1\Desktop\laravel-master\vendor\laravel\framework\src\Illuminate\Database\Query\Grammars\Grammar.php on line 111 and defined
  • @JanP。它没有任何错误,但它仍然没有提前输入名称。我有 typeahead.js 和所有内容。但它不显示名称。
  • @erm_durr 渲染后视图中的data-source= 字段是什么?
  • @TryingTobemyself &lt;input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="1" data-source='{}'&gt;
猜你喜欢
  • 2018-08-25
  • 2014-06-13
  • 2014-05-28
  • 2013-11-10
  • 2013-10-13
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
相关资源
最近更新 更多