保存数据库行

时间:2017-06-15 05:44:30

标签: php mysql laravel orm eloquent

我是PHP的新手。 我有管理面板(Backstage),在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');

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

id and status

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

@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';
}

2 个答案:

答案 0 :(得分: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并执行您想做的任何事情

答案 1 :(得分:0)

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

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