Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 Laravel未将Auth::id插入表中_Php_Mysql_Laravel_Laravel 5_Laravel 5.2 - Fatal编程技术网

Php Laravel未将Auth::id插入表中

Php Laravel未将Auth::id插入表中,php,mysql,laravel,laravel-5,laravel-5.2,Php,Mysql,Laravel,Laravel 5,Laravel 5.2,我希望在表“answers”中插入多个列值。我正在从问题表插入一个问题id,该问题id已成功插入 但它现在并没有插入auth:user()id,而是在表中返回“0” 应答器控制器代码: <?php namespace App\Http\Controllers; use App\questions; use Illuminate\Http\Request; use Auth; use App\Http\Requests; class answerController extends C

我希望在表“answers”中插入多个列值。我正在从问题表插入一个问题id,该问题id已成功插入

但它现在并没有插入auth:user()id,而是在表中返回“0”

应答器控制器代码:

<?php

namespace App\Http\Controllers;

use App\questions;
use Illuminate\Http\Request;
use Auth;
use App\Http\Requests;

class answerController extends Controller
{
    public function store($question_id,Requests\answerAddRequest $request)
    {
        Auth::user()->questions()->findOrFail($question_id)->first()->answers()->create($request->all());
    }
}

如果用户ID在
答案表中,为什么不这样做:

$request->user_id = auth()->user()->id;
$request->question_id = $question_id;
Answer::create($request->all());

这将只创建一个查询,而且它的可读性和可维护性要高得多。保持简单。

这是因为当使用相关模型创建模型时,Laravel会自动填充外键。 例如,如果我拆分您的查询,它将显示为:

$user = Auth::user();
$question = $user->questions()->findOrFail($question_id)->first();
$question->answers()->create($request->all());
此处答案模型由
$question
模型对象创建,因此它将自动填充问题id,但不会填充用户id,因为它不是使用
$user
创建的

但如果您将代码编写为:

$user->answers()->create($request->all());
它将自动填充用户id字段

更新

要填写问题id,您可以写为:

$inputs = $request->all();
$inputs['question_id'] = $question_id;
$user->answers()->create($inputs);

现在两个都返回“0”。列是people\u id而不是user\u id您是否在
$filleble
数组中添加了所有这些字段?是的,你做了什么,
dd($request->user\u id,$request->question\u id)显示您是否将其放在
答案::
是这是我对答案模式的支持:
类答案扩展模型{protected$table='answers';protected$filleble=['Answer','question\u id','people\u id'];protected$primaryKey='answer_id';
它会为问题抛出'2'和一个数组。请发布一个数组。那么如何插入问题\u id?