Я очень новичок в Laravel и сейчас пытаюсь узнать, как он работает. Я работаю с проектом, в котором мы используем Laravel и AngularJS. В настоящее время я пытаюсь вставить данные в 3 разные таблицы из одной из AngularJS, я могу получить значения просто отлично, но я не понимаю, как я могу вставить данные в несколько таблиц. У меня также есть PK в Table_1, который является FK в Table_2 и Table_3, который мне также нужно вставить. Я пытался понять это некоторое время, и мне действительно нужна помощь.
Если вам нужна какая-либо дополнительная информация о структуре или что-то еще, просто спросите, и я предоставлю ее, не уверен, что вам нужно увидеть: s
С наилучшими пожеланиями
Кевин! :)
EDIT:
Итак, у меня есть форма в AngularJS, которая выглядит примерно так:
form.html
<tr>
<td>
<input class="form-control" id="currency" ng-model="travelbill.Currency" ng-init="travelbill.Currency ='SEK'" type="text" />
</td>
<td>
<input class="form-control" id="exchange_rate" ng-model="travelbill.Exchange_rate" type="number" />
</td>
<td>
<input class="form-control" id="description" ng-model="travelbill.Description"/>
</td>
<td>
<input class="form-control" id="sekinklmoms" ng-model="travelbill.SekInklMoms" type="number" />
</td>
<td>
<input class="form-control" id="sekmoms" ng-model="travelbill.SekMoms" type="number" />
</td>
<td>
</td>
</tr>
Оттуда я звоню своему Ларавеллу с контроллером:
Controller.php
class TravelbillController extends \BaseController {
public function index() {
return Response::json(Travelbill::all());
}
public function store() {
$validator = Validator::make(
array(
'ResourceId' => Input::get('ResourceId')
),
array(
'ResourceId' => 'required'
)
);
if($validator->fails()){
App::abort(500, 'Validation Error!');
} else {
$travelbill = new Travelbill;
$travelbill->ResourceId = Input::get('ResourceId');
$travelbill->Destination = Input::get('Destination');
$travelbill->Customer = Input::get('Customer.Name');
$travelbill->StartDate = Input::get('StartDate');
$travelbill->StartTime = Input::get('StartTime');
$travelbill->EndDate = Input::get('EndDate');
$travelbill->EndTime = Input::get('EndTime');
$travelbill->Invoice = Input::get('Invoice');
$travelbill->TravelCompensation = Input::get('TravelCompensation');
$travelbill->save();
$response = Response::json($travelbill);
}
return $response;
}
}
Отсюда я также хочу вставить TravelbillId
, который является инкрементным значением в базе данных, в таблицу с именами Cost
и Allowance
, где FK равен TravelbillId
, отношения, которые я хочу, это либо один к одному на оба или один ко многим в Cost
и один в один в Allowance
.
У меня также есть некоторые модели, но я не уверен, что они написаны правильно.
UserModel.php
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
protected $table = 'resource';
protected $primaryKey = 'ResourceId';
public $timestamps = false;
public function supplier(){
return $this->belongsTo('Supplier', 'SupplierId', 'SupplierId');
}
public function resourceData(){
return $this->hasMany('OrderResourceData', 'ResourceId', 'ResourceId');
}
public function reportedTime(){
return $this->hasMany('ReportedTime', 'ResourceId', 'ResourceId');
}
public function approvements(){
return $this->hasMany('Approvement', 'ResourceId', 'ResourceId');
}
}
TravelbillModel.php
<?php
class Travelbill extends Eloquent {
protected $table = 'travelbill';
protected $primaryKey = 'TravelbillId';
protected $fillable = array('ResourceId', 'Destination', 'StartDay', 'StartTime', 'EndDay', 'EndTime', 'Invoice', 'TravelCompensation');
public $timestamps = true;
public function travelbill() {
return $this->belongsTo('User', 'ResourceId', 'ResourceId');
}
public function cost() {
return $this->hasOne('Cost', 'TravelbillId', 'TravelbillId');
}
public function allowance() {
return $this->hasOne('Allowance', 'TravelbillId', 'TravelbillId');
}
}
?>
CostModel.php
<?php
class Cost extends Eloquent {
protected $table = 'cost';
protected $primaryKey = 'CostId';
protected $fillable = array('TravelbillId', 'SekInklMoms');
public $timestamps = false;
public function cost() {
return $this->belongsTo('Travelbill', 'TravelbillId', 'TravelbillId');
}
}
?>