Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对null LARAVEL调用成员函数update()_Php_Mysql_Database_Laravel - Fatal编程技术网

Php 对null LARAVEL调用成员函数update()

Php 对null LARAVEL调用成员函数update(),php,mysql,database,laravel,Php,Mysql,Database,Laravel,我试图更新特定项,但出现错误“在null上调用成员函数update()”。 我以前尝试过用->插入($data)更改->更新($data),但效果很好 控制器: public function update(Request $request, $id) { $this -> validate($request, array( 'gamename' => 'required|min:3', 'price' =>

我试图更新特定项,但出现错误“在null上调用成员函数update()”。 我以前尝试过用->插入($data)更改->更新($data),但效果很好

控制器:

public function update(Request $request, $id)
    {
        $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');
        $genre = $request->input('genre');
        $price = $request->input('price');
        $releaseddate = Carbon::parse($request->input('releaseddate'));
        $picture = $request->file('picture')->getClientOriginalName();

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

        DB::table('games')->join('genres', 'games.genreid', '=', 'genres.genreid')->find($id)->update($data);

        return redirect('managegame');
    }
视图:

<form action="/update/{id}" method="post" id="registerform" enctype="multipart/form-data">
<div class="errorpop{{ $errors->has('genre') ? ' has-error' : '' }}">
            <label for="genre" class="">Genre</label>

            <div class="">
                @foreach($genres as $genre)
                    <option value="{{ $genre->genreid }}">{{ $genre->genre }}</option>
                @endforeach
                @if ($errors->has('genre'))
                    <span class="help-block">
                                        <strong>{{ $errors->first('genre') }}</strong>
                                    </span>
                @endif
            </div>
        </div>

体裁
@foreach($流派作为$流派)
{{$GREEP->GREEP}
@endforeach
@如果($errors->has('genre'))
{{$errors->first('genre')}
@恩迪夫

确保您得到了对象

$game = DB::table('games')->
join('genres', 'games.genreid', '=', 'genres.genreid')->where('id',$id)->get();
//确保您拥有所需的对象。然后

  $game->update($data);

我也不确定这条线是否如你所期望的那样有效

DB::table('games')->join('genres','games.genreid','=','genres.genreid')->查找($id)->更新($data)

你想更新什么<代码>游戏
类型
?你不能像那样一次更新两个表。您需要找到要更新的
games
行,更新该行,以及连接表行,并更新该行,但不能一次完成所有操作


但是,您试图用相同的方法从一个简单表单更新两个表,这表明您的表布局不正确?

{id}
不是一个值。您必须具有
{id}
的值。 示例:
action=“/update/1”


它获取我点击编辑的游戏id | |我得到的结果与我使用{{$id=$\u SESSION['id']}@Alexeymezenso时得到的结果相同,这会给你一个对象,然后
dd(DB::table('games')->find($id))
?而不是
null
?如果有,请执行以下操作:
DB::table('games')->where('id',$id)->更新($data)
;是的,它不是空的,我已经试过你的答案了。它没有显示任何错误,但只是刷新编辑页面(应该是redirect:view),而不更新数据声音(如validation redirects back),尝试删除验证。游戏会被更新吗?DB::table('games')->where('id',$id)->update($data);应该有用,在我这边很好,我已经试过你的答案了。它没有显示任何错误,但只是刷新编辑页面(应该是redirect:view),而不更新数据
<form action="/update/1" method="post" id="registerform" enctype="multipart/form-data">
<div class="errorpop{{ $errors->has('genre') ? ' has-error' : '' }}">
            <label for="genre" class="">Genre</label>

            <div class="">
                @foreach($genres as $genre)
                    <option value="{{ $genre->genreid }}">{{ $genre->genre }}</option>
                @endforeach
                @if ($errors->has('genre'))
                    <span class="help-block">
                                        <strong>{{ $errors->first('genre') }}</strong>
                                    </span>
                @endif
            </div>
        </div>
DB::table('games')->join('genres', 'games.genreid', '=', 'genres.genreid')->where('id', $id)->update($data);