Ajax &引用;类App\User的对象无法转换为int;拉维误差

Ajax &引用;类App\User的对象无法转换为int;拉维误差,ajax,laravel,Ajax,Laravel,我试图在Laravel中使用Ajax请求保存新用户,但我得到以下错误: Object of class App\User could not be converted to int 我必须添加用户已保存的文件,因此我不确定此错误来自何处 以下是UserController: public function save_user(Request $request) { try { if (request()->ajax()) {

我试图在Laravel中使用Ajax请求保存新用户,但我得到以下错误:

Object of class App\User could not be converted to int
我必须添加用户已保存的文件,因此我不确定此错误来自何处

以下是UserController:

public function save_user(Request $request)
    {
        try {
            if (request()->ajax()) {
                $lastUserId = User::where('user_id', '>', 0)->orderBy('user_id', 'desc')->get('user_id')->first()->toArray();

                $user = new User;
                $data = Input::all();
                $user->user_id = intval($lastUserId['user_id'] + 1);
                $user->user_type = $data['user_type'];
                $user->email = $data['email'];
                $user->password = 'e10adc3949ba59abbe56e057f20f883e';
                $user->first_name = $data['first_name'];
                $user->last_name = $data['last_name'];

                $user->save();
                if ($user > 0) {
                    return response()->json('Success');
                }
                return response()->json(['status' => 200, 'message' => 'save success']);
            }
        } catch (\Exception $e) {
            echo $e->getMessage();
        }
以下是Ajax请求:

$('#saveUser').on('click', function (e) {
            e.preventDefault();
            var $inputs = $('#new-user-form :input');

            var values = {};
            $inputs.each(function () {
                if (this.name != '_token' && this.name.length > 0) {
                    values[this.name] = $(this).val();
                }

            });

            $.ajax({
                url: '/api/save_user',
                type: "post",
                data: values,
                dataType: 'JSON',
                success: function (data) {
                    /// location.reload();
                }
            });

        })
这是用户模型

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Detail;
class User extends Authenticatable
{

    public function users(){
        return $this->hasMany('\App\User'); //Product Model Name
    }
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}

尝试在控制器中更改此设置

if ($user > 0) {
   return response()->json('Success');
}
对此

if ($user) {
   return response()->json('Success');
}

在您的情况下,您试图查看用户的
集合是否为
>0
,因此,您得到了上面的错误,因为Laravel试图将用户的
集合
解析为
int
数据类型,以使其可计数。将您的条件重构为:

if (count($user) > 0) {
  return response()->json('Success');
}
或者另一种方式:

if ($user) {
  return response()->json('Success');
}

您是否正在尝试创建新用户?如果是这样的话,为什么不让你的用户id像
$table->increments('user_id')
这样,每次创建新用户时,它都会自动增加用户id,您可以删除
$user->user\u id=intval($lastUserId['user\u id']+1)
AH.Pooladvand,谢谢-现在我得到了“调用未定义的方法App\User::increments()”你能发布你的
users
表格吗是的,我已经更新了这个问题