gpt4 book ai didi

php - 未定义的属性 : > stdClass error when using date type column on Laravel. 我该如何解决?

转载 作者:行者123 更新时间:2023-12-04 14:37:42 26 4
gpt4 key购买 nike

我正在尝试通过使用 Laravel 构建的 Web 服务中的表单插入数据(日期类型数据)。

slicitacoes.blade.php 代码:

    @extends('layout.app', ["current" => "solicitacaos"])

@section('body')

<div class="container">
<div class="card-border">
<div class="card-body">
<h3 class="card-title">Solicitações</h3>
<table class="table table-striped table-bordered table-hover">
<tr>
<th> Professor
</th>
<th>
Criação
</th>
<th>
Data Solicitação
</th>
<th>
Nome do Produto
</th>
<th>
Observações
</th>
<th>
Status
</th>
<th>
Ação
</th>

</tr>

@foreach($sols as $sol)

@php

dd($sol)

@endphp


<tr>
<td> {{$sol->nome_professor}}
</td>
<td> {{$sol->criacao}}
</td>
<td> {{dd($sol)}}
</td>
<td> {{$sol->nome_produto}}
</td>
<td> {{$sol->observacao}}
</td>
<td> {{$sol->status}}
</td>
<td>
<a href="/solicitacao/apagar/{{$sol->id}}" class="btn btn-sn btn-danger">Cancelar</a>
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endsection

错误在“{{\Carbon\Carbon::parse($sol->solicitacao_data->from_date)->format('d/m/Y')}} 行上

即使我将“{{\Carbon\Carbon::parse($sol->solicitacao_data->from_date)->format('d/m/Y')}} ”更改为“{{$sol->solicitacao_data }} ",我仍然遇到同样的错误。

Controller 代码为:
$date_sol = new DateTime();
$date_sol = DateTime::createFromFormat("d/m/Y",$request->input('solicitacao_data'));

$sol->solicitacao_data = $date_sol;

$sol->save();

我正在插入“25/2/2020”,但出现以下错误:

Facade\Ignition\Exceptions\ViewException Undefined property: stdClass::$solicitacao_data (View: C:\xampp\htdocs\laravel\workflow-novo\resources\views\solicitacoes.blade.php)



数据库表是通过迁移创建的,如下:
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateSolicitacaosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('solicitacaos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('id_users')->unsigned();
$table->foreign('id_users')->references('id')->on('users');
$table->bigInteger('id_produto')->unsigned();
$table->foreign('id_produto')->references('id')->on('produtos');
$table->string('status');
$table->string('observacao');
$table->date('solicitacao_data');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('solicitacaos');
}
}

我需要使用 Laravel 存储和恢复日期。我怎样才能没有上面的错误?

**我注意到,如果我尝试节省时间,则数据库保存无法正常工作。例如,以下代码:
$date_sol = Carbon::createFromFormat("d/m/Y H:i:s","20/12/2020 01:00:00");

$sol->solicitacao_data = $date_sol;

将以下数据存储在 solicacao_data 列上。
MariaDB [login]> select * from solicitacaos;
+----+----------+------------+------------+------------+------------------+-----
----------------+---------------------+
| id | id_users | id_produto | status | observacao | solicitacao_data | crea
ted_at | updated_at |
+----+----------+------------+------------+------------+------------------+-----
----------------+---------------------+
| 24 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-30 23:47:52 | 2019-12-30 23:47:52 |
| 25 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-31 01:22:50 | 2019-12-31 01:22:50 |
| 26 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-31 01:23:08 | 2019-12-31 01:23:08 |
| 27 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-31 01:27:33 | 2019-12-31 01:27:33 |
+----+----------+------------+------------+------------+------------------+-----
----------------+---------------------+
4 rows in set (0.001 sec)

请注意,仅存储日期。

我已经在slicacao.blade.php 中执行了命令dd($sol) 我得到了以下信息:
{#341 ▼
+"id": 1
+"status": "Em Análise"
+"nome_professor": "Olavo"
+"criacao": "2019-12-31 02:08:11"
+"nome_produto": "Cadeira"
+"observacao": "awdcasd"
}

即使该表具有我之前显示的列。
MariaDB [login]> select * from solicitacaos;
+----+----------+------------+------------+------------+------------------+-----
----------------+---------------------+
| id | id_users | id_produto | status | observacao | solicitacao_data | crea
ted_at | updated_at |
+----+----------+------------+------------+------------+------------------+-----
----------------+---------------------+
| 24 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-30 23:47:52 | 2019-12-30 23:47:52 |
| 25 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-31 01:22:50 | 2019-12-31 01:22:50 |
| 26 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-31 01:23:08 | 2019-12-31 01:23:08 |
| 27 | 1 | 1 | Em Análise | blabla | 2020-12-20 | 2019
-12-31 01:27:33 | 2019-12-31 01:27:33 |
+----+----------+------------+------------+------------+------------------+-----
----------------+---------------------+
4 rows in set (0.001 sec)

最佳答案

根据错误消息,您正在调用名为 $solicitacao_data 的属性。在slicatacoes.blade.php中,

您的标准类 $sol没有属性 solicitacao_data ,所以发生错误。

确保选择列 solicitacao_data通过查询,

并且不要将此字段放在模型的 $hidden 中.

关于php - 未定义的属性 : > stdClass error when using date type column on Laravel. 我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59496745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com