【问题标题】:laravel - Pass query result from HomeController to home blade viewlaravel - 将查询结果从 HomeController 传递到主刀片视图
【发布时间】:2019-10-05 10:11:39
【问题描述】:

我正在尝试使用以下代码将查询结果从 HomeController 传递到主刀片视图,但它似乎无法以这种方式工作。

public function index()
{
  $result=DB::table('tablename')->where('this', 'that')->where('this', 'that')->value('value');      
  return view('home',compact ('result'));        
}

如果我只写 return $result 我可以打印值,这意味着我正在获取数据。

在我的主页视图中,我有类似的东西

@if(!$result->isEmpty())     
 // print $result
@else
 //do something else if $result is empty
@endif

我的路线是Route::get('/', 'HomeController@index');

我还根据我看过的教程尝试了这个return view('home'$result));,它似乎工作正常,但在我的情况下它不起作用!

任何想法我做错了什么?

【问题讨论】:

  • 您的代码是正确的...但是您在哪里显示结果?您无法在@else 块中打印$result,因为它从未到达
  • @c 我需要在@else 块中打印它们!关于如何让它到达那里的任何想法?
  • 是的,删除@if块中的!,这是基本的布尔逻辑
  • 啊抱歉在 cmets 上犯了一个错误,它应该是相反的方式......如果我删除 ! 然后我得到一个错误:Call to a member function isEmpty() on string
  • 好的,我回答了。

标签: mysql laravel


【解决方案1】:

由于您返回的是字符串值而不是集合,因此您应该使用 empty() 函数进行检查

@if(!empty($result))     
 // print $result
@else
 //do something else if $result is empty
@endif

empty() 在 PHP 文档中

【讨论】:

    猜你喜欢
    • 2017-09-03
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2019-11-13
    相关资源
    最近更新 更多