尝试在同一个函数上执行多个查询

时间:2018-01-28 17:09:08

标签: php laravel

我正在尝试在我的应用程序上的同一个函数上同时执行2个查询。控制器上的这个函数在系统中注册一个新的房子,同时,它假设在一个已经为null的Users表中提供一个字段,然后该字段将用我刚刚拥有的房子的新id进行更新。创建。出于某种原因,第一个查询工作正常,但我一直在努力与第二个。我相信我的逻辑很好,也许Laravel语法让我有点困惑。有人能帮助我吗?

这是我的控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\House;
use App\User;

class AdminHouseController extends Controller
{

    public function index(){




    }


    public function create($role_id){

        if($role_id == 1){

            return view('admin.house.create');

        }else{

            return redirect('home');

        }

    }


    public function store(Request $request){

        House::create($request->all());

        $house_admin = Auth::user()->id;

        $house = House::where('house_admin', $house_admin)->first();

        User::findOrFail($house_admin)->update(['house_id' => $house->id]);


        return redirect('home');

    }

    public function show($id){

    }

    public function edit($id){

    }

    public function update(Request $request, $id){

    }

    public function destroy($id){

    }
}

这是我的表格 //我相信问题不在这里,但无论如何

@extends('layouts.app')


@section('content')



    <p><b>Register your house</b></p>


            {!! Form::open(['method'=>'post', 'action'=>'AdminHouseController@store']) !!}

                {!! Form::text('house_address', null,['placeholder'=>'House Address']) !!}

                <input type="hidden" name="house_admin" value="{{Auth::user()->id}}">

                {!! Form::number('nflatmates', null, ['placeholder'=>'How many flatmates']) !!}

                {!! Form::submit('Register', ['class'=>'ui-btn buttonDefault']) !!}

            {!! Form::close() !!}




@stop

最后,这是我的路由器web.php //我也相信问题不在这里,而是在我的控制器中

use App\User;

Route::get('/', function () {
    return view('welcome');
});


Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Route::get('/house/{role_id}', 'AdminHouseController@create')->name('house');

Route::post('store', [
    'uses' => 'AdminHouseController@store'
]);

1 个答案:

答案 0 :(得分:2)

您需要将house_id字段添加到用户模型中的$fillable数组中:

protected $fillable = ['house_id', 'other_fields'];

此外,您有两个外键而不是多余外键。您可能只想保留house_admin外键。