【问题标题】:Can't retrieve Id from the database无法从数据库中检索 Id
【发布时间】:2023-03-12 16:15:01
【问题描述】:

当我尝试访问它时,我无法从我的数据库中检索它:

这是我的数据库:

这是我的事件控制器类:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Event3;
class EventsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $data = Event3::get(['title','start','end','color']);

       return Response()->json($data);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
       $event = new Event3();
        $event->id = $request->id;
       $event->title = $request->title;
       $event->start = $request->date_start .' '. $request->time_start;
        $event->end = $request->date_end;
       $event->color = $request->color;
        $event->save();

        return redirect('/');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

我已尝试添加以下内容:

$event-&gt;id= $request-&gt;id; 进入上述课程,但这没有帮助。

事件3

namespace App;

use Illuminate\Database\Eloquent\Model;

class Event3 extends Model
{
    /**
     * @var string
     * [$table description]
     * @var string
     */

    protected $table = 'event3s';

    public $timestamps = false;

    /**
     * @var string
     * [$table description]
     * @var string
     */
    protected $filltable =[
        'title','start','end','color'

    ];
}

【问题讨论】:

  • 检查受保护的 $fillable=[ ];在那里添加id
  • store方法新建元素,id会自动填充
  • 你想在这里实现什么?创建新元素还是编辑现有元素?
  • @OuailB 至少创建一个新元素,它在 phpmyadmin 中说该记录有一个 id,但是当我通过 https://social.com/events 查看时,除了 id 之外,我得到了所有的东西

标签: javascript php mysql laravel


【解决方案1】:

你必须修改你的 index@EventsController

public function index()
{
    $data = Event3::get(['id', 'title','start','end','color']);

   return Response()->json($data);
}

或者直接调用

Event3::all();

请注意,控制器中的 store() 方法用于创建新元素,id 将自动填充。

【讨论】:

  • 刚看到你回答之前,是的,我没有意识到的简单错误
【解决方案2】:

发现错误,很简单的一个: 在控制器类中忘记添加id

 public function index()
    {
        $data = Event::get(['id', 'title', 'start', 'end', 'color']);
        return Response()->json($data);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 2022-06-13
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多