我正在尝试在我的应用程序上的同一个函数上同时执行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'
]);
答案 0 :(得分:2)
您需要将house_id
字段添加到用户模型中的$fillable
数组中:
protected $fillable = ['house_id', 'other_fields'];
此外,您有两个外键而不是多余外键。您可能只想保留house_admin
外键。