模型未更新Laravel [英] Model not updating laravel

查看:85
本文介绍了模型未更新Laravel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我似乎无法再更新用户和学校表,但是现在能够更新兴趣表.

I can't seem to update my user and school table anymore but was able to update hobby table now.

保持收到错误消息:implode():更新数据时传递了无效的参数->链接回之前的问题

Keep getting error: implode(): Invalid arguments passed when updating data --> linking back to the question before

控制器:

        //update for user
        public function edit($id){
            $object = user::find($id);

            return view('edit', compact('object'));

        }

        public function update(Request $request, $id){
            $object       = user::find($id);
            $object->Name = $request->input('Name');

            $object->update();

            return redirect('/home');
        }

        //update for Schools table
        public function edit1($id){
           $object2 = school::find($id);

           return view('edit1', compact('object2'));
        }

        public function update1(Request $request, $id){
            $object2 = school::find($id);

            $test           = array();
            $test['School'] = implode(' , ', $request->School);
            $test['SDate']  = implode(' , ', $request->SDate);
            $test['EDate']  = implode(' , ', $request->EDate);

            $object2->update($test);
            return redirect('/home');
        }

        // The error starts here after putting this whole thing in.
        // (I tried putting it into another separate controller but the error
        // still continues)
        public function edit2($id) {
           $object3 = hobby::find($id);

           return view('edit2', compact('object3'));
        }

        public function update2(Request $request, $id){
            $object3 = hobby::find($id);

            $test2                  = array();
            $reading_book           = (array)$request->reading_book;
            $test2['reading_book']  = implode(' , ',$reading_book );
            $computer_game          = (array)$request->computer_game;
            $test2['computer_game'] = implode(' , ',$computer_game );

            $object3->update($test2);

            return redirect('/home');
        }

爱好模型:

   <?php

    namespace App;

    use Illuminate\Database\Eloquent\Model;
    use Eloquent;

    class hobby extends Eloquent
    {
        protected $fillable = array('reading_book','computer_game','user_id');

        public function users() {
            return $this->belongsTo('App\user, 'user_id', 'id');
        }
    }

路线:(当前使用这些路线进行更新)

Route: (currently using these for updating)

Route::get('/user/show/{id}/edit', 'HomeController@edit');
Route::put('/user/show/{id}','HomeController@update');


Route::get('/user/show/{id}/edit1', 'HomeController@edit1');
Route::put('/user/show/{id}','HomeController@update1');


Route::get('/user/show/{id}/edit2', 'HomeController@edit2');
Route::put('/user/show/{id}','HomeController@update2');

推荐答案

问题出在您的路线上:

Route::put('/user/show/{id}','HomeController@update');

Route::put('/user/show/{id}','HomeController@update1');

Route::put('/user/show/{id}','HomeController@update2');

三种方法的路线相同.

只需进行测试即可:

Route::put('/user/show/{id}','HomeController@update');

Route::put('/user/showupdate1/{id}','HomeController@update1');

Route::put('/user/showupdate2/{id}','HomeController@update2');

并更改视图,这将非常完美:)

And change in the view this will work perfectly :)

这篇关于模型未更新Laravel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆