未定义的属性:Illuminate\Database\MySqlConnection - 查询包含参数,但是我收到此错误。怎么了
Posted
技术标签:
【中文标题】未定义的属性:Illuminate\\Database\\MySqlConnection - 查询包含参数,但是我收到此错误。怎么了【英文标题】:Undefined property: Illuminate\Database\MySqlConnection - The query holds the parameter, however I am getting this error. What is wrong未定义的属性:Illuminate\Database\MySqlConnection - 查询包含参数,但是我收到此错误。怎么了 【发布时间】:2020-06-13 11:51:57 【问题描述】:我正在使用 Laravel 在屏幕上存储和打印一组产品。
下面我将展示控制器和视图的代码。
我有控制器,它调用视图“产品”。
public function filter(Request $request)
//
$nome = $request->input('nome');
$prods = DB::table('produtos')->select('produtos.id AS id', 'produtos.nome as nome',
'produtos.preco AS preco', 'produtos.numero_nf AS numero_nf', 'produtos.cc AS cc')->where('produtos.nome','=',$nome);
return view('/produtos', compact('prods'));
查看产品是:
@extends('layout.app', ["current" => "produtos"])
@section('body')
<div class="container">
<div class="card-border">
<div class="card-body">
<h3 class="card-title">Produtos Cadastrados</h3>
<br><br>
<div class="card-body">
<form method="POST" action="/filtrar_produtos">
@csrf
<div class="form-group row">
<div style="padding-left: 15px">
<input style="height: 35px" id="filtro" type="filtro" class="col-md-4 text-md-right " name="filtro" required autocomplete="filtro" autofocus>
</div>
<div class="col-md-6 offset-md-4">
<button style="height: 35px" type="submit" class="btn btn-primary">
__('Filtrar')
</button>
</div>
</div>
</form>
</div>
<table class="table table-striped table-bordered table-hover">
<tr>
<th> Id
</th>
<th>
Nome
</th>
<th>
Número da NF
</th>
<th>
Preço
</th>
<th>
Descrição
</th>
<th>
Ação
</th>
</tr>
@foreach($prods as $prod)
<tr>
<td> $prod->id
</td>
<td> $prod->nome
</td>
<td> $prod->numero_nf
</td>
<td> $prod->preco
</td>
<td> $prod->descricao
</td>
<td>
<a href="/editar_produto/$prod->id" class="btn btn-sn btn-primary">Editar</a>
<a href="/produto/apagar/$prod->id" class="btn btn-sn btn-danger">Apagar</a>
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endsection
我得到的错误是:
未定义属性:Illuminate\Database\mysqlConnection::$id(查看: C:\xampp\htdocs\laravel\workflow-novo\resources\views\produtos.blade.php)
怎么了?
【问题讨论】:
在你的控制器中调用 dd($prods) 以获取 return 语句并检查这个变量是否为空 【参考方案1】:您需要执行查询。
$prods = DB::table('produtos')->select('produtos.id AS id', 'produtos.nome as nome',
'produtos.preco AS preco', 'produtos.numero_nf AS numero_nf', 'produtos.cc AS cc')->where('produtos.nome','=',$nome);
不返回任何行。
在末尾添加->get()
。
$prods = DB::table('produtos')->select('produtos.id AS id', 'produtos.nome as nome',
'produtos.preco AS preco', 'produtos.numero_nf AS numero_nf', 'produtos.cc AS cc')
->where('produtos.nome','=',$nome)
->get();
【讨论】:
以上是关于未定义的属性:Illuminate\Database\MySqlConnection - 查询包含参数,但是我收到此错误。怎么了的主要内容,如果未能解决你的问题,请参考以下文章
无法读取未定义类型错误的属性“推送”:无法读取未定义错误的属性“推送”
带有 Ionic 4 的 SQLite?无法读取未定义类型错误的属性“then”:无法读取未定义的属性“then”
NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)