簡體   English   中英

Laravel:Connection.php 319行中的PDOException:SQLSTATE [42S02]

[英]Laravel: PDOException in Connection.php line 319: SQLSTATE[42S02]

在數據庫更新期間,我嘗試驗證輸入,但是每次(單擊“提交”按鈕)時,都會收到此錯誤消息:

Connection.php 319行中的PDOException:SQLSTATE [42S02]:未找到基表或視圖:1146表'app_db.user_id'不存在

未經驗證,我的更新將在user_details表上運行。

UserDetailsController.php

<?php

namespace App\Http\Controllers;

use Session;
use App\UserDetails;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;


class UserDetailsController extends Controller
{
     public function index()
    {
        $details = UserDetails::all()->where('user_id', \Auth::user()->id);
        return \View::make('pages.personal_datas')
        ->with('details', $details);
    }

     public function update()
    {

        $details = UserDetails::where('user_id', \Auth::user()->id)->first();
        $validator = UserDetails::validate(Input::all());
        if($validator->fails())
        {   
            $messages = $validator->messages();

            return redirect()->action('UserDetailsController@index')
            ->withErrors($validator);
        }
        else
        {
            $details->email = Input::get('email');
            $details->phone = Input::get('phone');         
            $details->country = Input::get('country');
            $details->city = Input::get('city');
            $details->address = Input::get('address');
            $details->save();

            Session::flash('message', 'Successfully updated!');

            return redirect()->action('UserDetailsController@index');
        }
    }
}

UserDetails.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Validator;

class UserDetails extends Model
{
    public $timestamps = false;
    protected $guarded = [];
    protected $primaryKey = 'user_id';
    protected $table = 'user_details';

    public static $rules = array(
            'email' => 'email|unique:user_id|required',
            'phone' => 'min:11|required',
            'country' => 'min:4|required',
            'city' => 'min:2|required',
            'address' => 'min:4|required',
    );

    public static function validate($data)
    {
            return Validator::make($data, static::$rules);
    }
}

UPDATE 數據庫結構

您的問題在於您對用戶電子郵件的驗證

unique:user_id unique:user_details, user_id > unique:user_details, user_id應該是正確的規則格式

完整規則如下: 'email' => 'email|unique:user_details,user_id|required'

您的原始驗證規則正在嘗試查詢不存在的user_id表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM