【问题标题】:Save status of DB row保存 DB 行的状态
【发布时间】:2017-06-15 05:44:29
【问题描述】:

我是 PHP 新手。 我有在 Laravel 上创建的管理面板(后台)。 在面板上显示来自 MySQL 表(演示)的投标(演示)列表。

我已经从下面的代码中删除了所有 html。

这是在演示视图中显示表格中每一行的代码:

@foreach($listDemos as $demo)
  {{ $demo->id }}
  {{ $demo->name }}
  {{ $demo->email }}
  {{ $demo->link }}
  {{ $demo->created_at }}
@endforeach

这里是演示控制器

public function demo()
    {
      $listDemos = Demo::all();
      return view('backstage.demos')->with('listDemos', $listDemos);
    }

这是演示路线:

Route::get('backstage/demos', 'BackstageController@demo');

我有另一个 mysql 表 (demoStatus) 有 2 列

id and status

问题是如何通过在演示视图中单击按钮将状态(Decline)存储在不同的表中(demoStatuswhere id = 演示表中的演示 id 和状态 = 按钮值):

@foreach($listDemos as $demo)
  {{ $demo->id }}
  {{ $demo->name }}
  {{ $demo->email }}
  {{ $demo->link }}
  {{ $demo->created_at }}

  <form action="" method="post">
     {{ csrf_field() }}
    <button type="submit">Decline</button>
  </form>
@endforeach

CSRF 字段存储在每个页面的头部

<meta name="csrf-token" content="{{ csrf_token() }}">

对于 demoStatus,我有另一个模型:

class DemoStatus extends Model
{
    protected $table = 'demosStatus';
    protected $fillable = 'status';
}

和演示模型:

class Demo extends Model
{
    protected $table = 'demos';
}

【问题讨论】:

    标签: php mysql laravel orm eloquent


    【解决方案1】:

    实际上,您必须从提交中发送demo id。一种方法是使用隐藏字段。

    <form action="some/action/here" method="post">
         {{ csrf_field() }}
        <input type="hidden" name="demo_id" value="{{ $demo->id }}" />
        <button type="submit">Decline</button>
    </form>
    

    这个帖子被提交到的路由。获取此演示 id 并做任何你想做的事

    【讨论】:

      【解决方案2】:

      我更喜欢使用它而不是 ->with();

      public function demo()
          {
            $listDemos = Demo::all();
            return view('backstage.demos',['listDemos'=>$listDemos]);
          }
      

      【讨论】:

        猜你喜欢
        • 2019-07-14
        • 1970-01-01
        • 1970-01-01
        • 2013-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多