【问题标题】:Laravel Query DB into BladeLaravel 查询数据库到 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)

请帮帮我

【问题讨论】:

  • 能否请您重新表述您的问题?就我个人而言,我不明白你想在这里实现什么。
  • 查看下面的答案

标签: mysql laravel blade


【解决方案1】:

如果您要在刀片模板中做一些复杂的事情,您只需添加一个&lt;?php ... ?&gt; 标记并在那里执行即可。 话虽如此,请不要,这是一种不好的做法,除了简单的 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 链接
猜你喜欢
  • 2018-11-11
  • 2014-06-04
  • 2021-05-09
  • 2021-04-19
  • 2017-08-30
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多