Laravel 查询数据库到 Blade
Posted
技术标签:
【中文标题】Laravel 查询数据库到 Blade【英文标题】:Laravel Query DB into Blade 【发布时间】:2017-01-12 21:46:27 【问题描述】:是否可以将数据库查询到 Blade 中? 我从路由发送到刀片、所有 MyUsers 和 Booking。
进入餐桌预订我有列 id_user,
我有这个代码
@foreach
$booking->id
this down Foreach is not optimized - it's possible improve it?
@foreach ($Myusers as $Myuser)
@if ($myuser == $booking->id_user)
$myuser->name
@endif
@endforeach
@endforeach
我尝试过使用 Blade::directive,但我只能发送搅拌值而不是 php 值。我有这个代码
Blade::directive('DettagliUtente', function($expression)
print_r($expression);
but echo the string "$booking->id_user" but I want the value $booking->iduser
$dettaglioutente=\App\Utenti::find($var)->first();
return "<?php echo '".$dettaglioutente->name."'; ?>";
);
@DettagliUtente ($booking->id_user)
请帮帮我
【问题讨论】:
能否请您重新表述您的问题?就我个人而言,我不明白你想在这里实现什么。 查看下面的答案 【参考方案1】:如果您要在刀片模板中做一些复杂的事情,您只需添加一个<?php ... ?>
标记并在那里执行即可。
话虽如此,请不要,这是一种不好的做法,除了简单的 IF 或模板上的迭代之外,您不应该有代码、查询或任何逻辑。
您应该从实际代码中执行逻辑并获取数据,而不是在视图上,您需要分离概念,视图中不应包含代码,只是将数据呈现给用户。
据我所知,问题似乎是您可能希望在每个(或许多)页面上显示一些内容,当然您不希望在每个控制器中重复您自己以获取相同的数据。
所以,我将针对您使用 View Composers 的这类问题向您提出建议。您可以在此处查看文档:https://laravel.com/docs/5.3/views#view-composers
如何使用视图作曲家
您在app/Providers
中创建一个新的Provider,您可以将其命名为ViewComposerProvider
,在boot()
方法中您定义一个视图编写器:
View::composer('partials.my-books', 'App\Http\ViewComposers\MyBooksComposer');
然后您创建该类并创建一个函数compose(View $view)
,您可以在那里获取数据、执行任何逻辑并最终将该数据发送到视图:
$view->with('books', $my_list_of_books);
然后,您需要做的就是将该部分模板包含到任何模板中,Laravel 将看到它需要为该部分模板调用视图编写器。
您的基本模板:
...
@include('partials.my-books')
...
你的部分模板app/resources/views/partials/my-books.blade.php
:
<ul>
@foreach($books as $book)
<li>$book->name</li>
@endforeach
</ul>
注意:请记住,您需要将您的提供商ViewComposerProvider
注册到您的config.app
我希望这会有所帮助。
【讨论】:
感谢您的回复,但我将 User->name 从 booking->id_users 链接以上是关于Laravel 查询数据库到 Blade的主要内容,如果未能解决你的问题,请参考以下文章
PHP,Laravel 连接两个查询的结果,并有选择地显示在 html/blade 表中
使用 Laravel 8(和 Jetstream)将自定义数据传递到 login.blade.php