繁体   English   中英

Laravel插入或更新数组,多行

[英]Laravel insert or update array, multiple rows

大家好,即时通讯卡住了多行插入或更新更新,但如何在更新内部插入新行

只是在edit.blade.php->如果行存在更新或只是创建一个新的

大家好,即时通讯卡住了多行插入或更新更新,但如何在更新内部插入新行

只是在edit.blade.php->如果行存在更新或只是创建一个新的

新行插入图片

控制者

  public function update(Request $request, $id)
{
      $post = Anime::find($id);

      $post->anime_name = $request->input('anime_name');
      $post->anime_namesecond = $request->input('anime_namesecond');
      $post->anime_synopsis = $request->input('anime_synopsis');
      $post->anime_studio = $request->input('anime_studio');
      $post->anime_duration = $request->input('anime_duration');
      $post->age_rating = $request->input('age_rating');
      $post->aired_at = $request->input('aired_at');
      $post->anime_promovideo = $request->input('anime_promovideo');
      $post->anime_patchdownload = $request->input('anime_patchdownload');
      $post->author_id = $userId = Auth::id();
      $post->anime_episodelist = $request->input('anime_episodelist');
      $post->translator = $request->input('translator');

      if ($post->save()) {


        if (Episode::where('id', '=', Input::get('id'))->exists()) {
          foreach (request()->input('id') as $key => $id) {
            $episode = \App\Episode::find($id);



            $episode->episode_name = $request->input('episode_name')[$key];
            $episode->episode_image = $request->input('episode_image')[$key];
            $episode->episode_downloadlink = $request->input('episode_downloadlink')[$key];
            $episode->episode_watchlink = $request->input('episode_watchlink')[$key];

            $episode->save();
        }
      }
      else {
        echo "T_T";
      }

    }

      //return redirect()->route('anime.show', $post->id);

}

Edit.blade.php

<tr v-for="row in rows">
    <input type="hidden" v-model="row.id" name="id[]" />
    <td><b-input icon="format-color-text" type="text" v-model="row.episode_name" name="episode_name[]" required></b-input></td>
    <td><b-input icon="link" type="text" v-model="row.episode_downloadlink" name="episode_downloadlink[]" required></b-input></td>
    <td><b-input icon="link" type="text" v-model="row.episode_watchlink" name="episode_watchlink[]" required></b-input></td>
    <td><b-input icon="camera" type="text" v-model="row.episode_image" name="episode_image[]" required></b-input></td>

    <td><i class="fa fa-minus-circle button is-danger" @click="removeRow()"></i></td>
  </tr>

Vue JS脚本

<script>
  var app = new Vue({
    el: '#app',
    data: {
      anime_name: '{{ $post->anime_name }}',
      anime_namesecond: '{{ $post->anime_namesecond }}',
      anime_synopsis: '{{ $post->anime_synopsis }}',
      anime_episodelist: '{{ $post->anime_episodelist }}',
      anime_studio: '{{ $post->anime_studio }}',
      anime_namesecond: '{{ $post->anime_namesecond }}',
      anime_duration: '{{ $post->anime_duration }}',
      age_rating: '{{ $post->age_rating }}',
      aired_at: '{{ $post->aired_at }}',
      anime_promovideo: '{{ $post->anime_promovideo }}',
      anime_patchdownload: '{{ $post->anime_patchdownload }}',
      translator: '{{ $post->translator }}',
      rows: JSON.parse('{!! json_encode($eps) !!}'),
      api_token: '{{Auth::user()->api_token}}'
    },
    methods: {
      updateSlug: function(val) {
        this.slug = val;
      },
      addRow: function (index) {
            try {
                this.rows.splice(index +1, 0, {});
            } catch(e)
            {
                console.log(e);
            }
        },
        removeRow: function (index) {
            this.rows.splice(index, 1);
        }
    }
  });
</script>
@endsection

据我了解您的问题,如果没有提供ID,您想创建一个新剧集。 在这里,我对您的代码做了一些编辑:

  if ($post->save()) {
      foreach (request()->input('id') as $key => $id) {
        $episode = \App\Episode::find($id);

        if($episode === null) { 
          $episode = new \App\Episode;
        }

        $episode->episode_name = $request->input('episode_name')[$key];
        $episode->episode_image = $request->input('episode_image')[$key];
        $episode->episode_downloadlink = $request->input('episode_downloadlink')[$key];
        $episode->episode_watchlink = $request->input('episode_watchlink')[$key];

        $episode->save();
   }
}

让我知道它是否有效。 祝您有个美好的一天,并祝您应用顺利。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM