【问题标题】:How to get Value from Selected Option in Laravel from 2 different table in database如何从数据库中的 2 个不同表中获取 Laravel 中选定选项的值
【发布时间】:2018-06-16 17:20:26
【问题描述】:

我想获取它的值以将其插入到数据库中的 Games 表中。但是我必须从数据库的 Genres 表中显示流派的名称。

查看:

<select name="genreid">
                    @foreach($genres as $genre)
                        <option value="{{ $genre->genreid }}"> {{ $genre->genre }}</option>
                        @endforeach
                </select>

控制器:

public function insertgame(Request $request){

        $this -> validate($request, array(
                'gamename' => 'required|min:3',
                'price' => 'required|int|min:1',
                'genre' => 'required',
                'releaseddate' => 'required|date',
                'picture' => 'required|mimes:jpeg,jpg,png,gif'
        ));


        $gamename = $request->input('gamename');
        $genreid = $request->input('genreid');
        $price = $request->input('price');
        $releaseddate = Carbon::parse($request->input('releaseddate'));
        $picture = $request->file('picture')->getClientOriginalName();

        $data=array('gamename' => $gamename, 'genreid'=>$genreid, 'price'=>$price,'releaseddate'=>$releaseddate,'picture'=>$picture );

        DB::table('games')->insert($data);

        return redirect('managegame');

    }

【问题讨论】:

  • 您将$value 传递给查看,但$value 未在任何地方定义。
  • 请显示{{ dd($genres) }}的结果
  • 对不起,'value'=>$value 不包括在内,我测试了一些代码后忘记删除它
  • 收藏 {#207 ▼ #items: array:5 [▼ 0 => 流派 {#208 ▶} 1 => 流派 {#209 ▶} 2 => 流派 {#210 ▶} 3 = > 流派 {#211 ▶} 4 => 流派 {#212 ▶} ] }
  • @SteveRuru 请使用@foreach生成的选择元素 HTML 更新您的答案

标签: php laravel select option


【解决方案1】:

我找到了答案!

我只是变了

'流派' =>'必需',

'genreid' => '整数|必需',

哈哈谢谢大家

【讨论】:

    【解决方案2】:

    你说过如果你使用这个 HTML 它对你有用:

    <select name="genre">
        <option selected disabled>Choose one</option>
        <option value="FPS">FPS</option>
        <option value="Action">Sports</option>
        <option value="Action">Action</option>
        <option value="Racing">Racing</option>
        <option value="Simulation">Simulation</option>
    </select>
    

    在这种情况下,要使用正确的数据格式,请更改:

    <option value="{{ $genre->genreid }}">{{ $genre->genre }}</option>
    

    收件人:

    <option value="{{ $genre->genre }}">{{ $genre->genre }}</option>
    

    【讨论】:

    • 谢谢您,我已经尝试过您的答案,但仍然像以前一样出错。当我把@foreach 从数据库中获取数据时,错误就开始了。 SQLSTATE [42S22]:找不到列:1054 '字段列表'中的未知列'类型'(SQL:插入gamesgamenamegenrepricereleaseddatepicture)值(Test, Sports, 100, 2009-09-09 00:00:00, example.jpg))
    • @SteveRuru 此错误与原始问题无关。该错误表明您在games 表中没有genre 列。当您尝试使用 DB::table('games')-&gt;insert($data); 插入数据时,您会收到此错误。
    【解决方案3】:

    做这样的事情

    @foreach($game->genres as $genre)
    {
      <option value='{{$genre->id}}' {{$game->genre ==$genre->id ? 'selected' :' '> {{$genre->name}} </option>
     }
    

    【讨论】:

    • 你的意思是这样吗?
    猜你喜欢
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2021-03-25
    相关资源
    最近更新 更多