我目前正在使用laravel 4中的Web应用程序。该应用程序的本质是将表单数据存储在数据库中。
由于表单输入框中的名称不同,我的主要问题是将不同的值存储在例程表中,因为我只有一个值字段,并通过id链接该值和指定的任务。我还没有找到一种在例程中为每个字段有效存储一行的方法。
数据库看起来像这样(忽略Arduino和Endringslogg):
HverTimeController.php:
class HverTimeController extends BaseController
{
public $restful = true;
public function getHvertime()
{
return View::make('hvertime')
->with('title', 'Hvert Time');
}
public function postInsert()
{
//insert logic
return Redirect::route('hvertime')
->with('message', 'Lagret i databasen!');
}
}
routes.php文件
Route::get('bassengweb/hvertime', array('as' => 'hvertime', 'uses' => HverTimeController@getHvertime'));
Route::post('bassengweb/insertHT', array('uses' => 'HverTimeController@postInsert'));
雄辩的模特 (尽管上图中的名称是挪威语,但我已经在数据库中将它们更改为英语,如下面的代码所示)
Emp.php(图中的Ansatt)
class Emp extends Eloquent
{
protected $table = 'emps';
protected $fillable = array(
'user_name', 'first_name',
'last_name', 'email',
'password', 'user_type');
public function routines()
{
$this->hasMany('Routine', 'emp_id', 'id');
}
}
Routine.php(图中的Rutiner)
class Routine extends Eloquent
{
protected $table = 'routines';
protected $fillable = array('date', 'time', 'value', 'emp_id');
public function emps()
{
$this->belongsTo('Emp', 'emp_id', 'id');
}
public function tasks()
{
$this->belongsToMany('Task', 'task_routine', 'routine_id', 'task_id');
}
public function measurements()
{
$this->belongsToMany('Measurement', 'measure_routine', 'routine_id', 'measure_id');
}
}
Measurement.php(图中的Målinger表)
class Measurement extends Eloquent
{
protected $table = 'measurements';
protected $fillable = array('title');
public function routines()
{
$this->belongsToMany('Routine', 'measure_routine');
}
}
Task.php(图中的Oppgaver表)
class Task extends Eloquent
{
protected $table = 'tasks';
protected $fillable = array('title');
public function routines()
{
$this->belongsToMany('Routine', 'task_routine', 'task_id', 'routine_id');
}
}
hvertime.blade.php
@extends('layouts.default')
@section('content')
<h1>HVER TIME</h1>
@if($errors->has())
<ul>
{{ $errors->first('badendeTime', '<li>:message</li>') }}
{{ $errors->first('temp', '<li>:message</li>') }}
</ul>
@endif
{{ Form::open(array('url' => 'bassengweb/insertHT', 'method' => 'POST')) }}
<table>
<tr>
<td>{{ Form::label('badendeTime', 'Badende per Time:') }}</td>
<td>{{ Form::text('badendeTime', Input::old('badendeTime')) }}</td>
</tr>
<tr>
<td>{{ Form::label('temp', 'Temperatur:') }}</td>
<td>{{ Form::text('temp', Input::old('temp')) }}</td>
</tr>
<tr>
<td><hr/></td>
<td>{{ Form::submit('Lagre') }}</td>
</tr>
</table>
{{ Form::close() }}
@stop
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
分析这些关系
Oppgaver x OppgaverRutiner x Rutiner
Oppgaver (hasMany) OppgaverRutiner and
Rutiner (hasMany) OppgaverRutiner too
所以反过来
OppgaverRutiner (belongsTo) Oppgaver
OppgaverRutiner (belongsTo) Rutiner
Ansatt x Rutiner
Ansatt (hasMany) Rutiner
所以反过来
Rutiner (belongsTo) Ansatt
Malinger x MalingerRutiner x Rutiner
在表格中MalingerRutiner缺少表格Rutiner的外键!!!!!
Malinger (hasMany) MalingerRutiner and
Rutiner (hasMany) MalingerRutiner too
反向
MalingerRutiner (belongsTo) Malinger
MalingerRutiner (belongsTo) Rutiner
Basseng x MalingerRutiner
Basseng (hasMany) MalingerRutiner
反向
MalingerRutiner (belongsTo) Basseng
你的模特中有这个逻辑吗?