【问题标题】:Laravel insert FOREIGN KEY in Form Request methodLaravel 在表单请求方法中插入 FOREIGN KEY
【发布时间】:2015-11-30 23:43:55
【问题描述】:

在我的应用程序中,一些表是关系表,我需要将 FOREIGN KEY 作为用户 ID 插入到表中。从模型创建新实例然后使用save() 方法我没有任何问题。但是我想使用Form Request 方法来创建和更新记录。

我收到此错误,但不知道如何解决;

SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新 >child 行:外键约束失败(epaypro.merchand_web_service,>CONSTRAINT merchand_web_service_user_id_foreign FOREIGN KEY (user_id) >REFERENCES users (id)) (SQL: 插入merchand_web_service >(updated_at, created_at) 值 (2015-11-29 11:31:54, 2015-11-29 11:31:54 ))

这是我的模型:

namespace app;
use Illuminate\Database\Eloquent\Model;
use Morilog\Jalali\jDate;

class Merchant extends Model
{
    protected $table = 'merchand_web_service';
    protected $fillable = ['customer_key', 'company_name', 'company_logo'];

    /**
     * @return mixed
     */
    public function user()
    {
        return $this->belongsTo('App\User');
    }
}

storeController 上的方法:

public function store(StoreMerchantWebServiceRequest $request)
{
    Merchant::create($request->all());
    return redirect()->route('post.index');
}

StoreMerchantWebServiceRequest类:

class StoreMerchantWebServiceRequest extends Request
{
    public function authorize()
    {
        if (Auth::check()) {
            return true;
        } else
            return false;
    }

    public function forbiddenResponse()
    {
        return Response::make(trans('message.permission_denied'), 403);
    }

    public function rules()
    {
        return [
            'agent_company_name' => 'required',
            'agent_company_logo' => 'mimes:jpg,jpeg,bmp,png|max:300',
        ];
    }
}

我的测试(在控制器中):

public function store(StoreMerchantWebServiceRequest $request)
{
    $order = Merchant::create($request->all());
    $this->user_id = Auth::user()->id;
    $order->save();
    return redirect()->route('post.index');
}

【问题讨论】:

标签: laravel-5 laravel-5.1


【解决方案1】:

处理这种情况的一个非常简单的方法是在控制器中的 store 方法中:

public function store(StoreMerchantWebServiceRequest $request)
{
    $merchantData = $request->all();
    $merchantData['user_id'] = Auth::user()->id;
    Merchant::create($merchantData);
    return redirect()->route('post.index');
}

【讨论】:

    猜你喜欢
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2016-10-21
    • 2019-04-12
    • 2014-03-20
    • 1970-01-01
    • 2020-01-05
    相关资源
    最近更新 更多