我有两张桌子:
在第一张表中是课程的基本内容。在第二个表格中,我只存储课程的日期(即星期一,星期一,开始 - >开始和停止的时间 - >结束)。该课程可以有多个日期。
现在我想创建一个下拉列表,如下所示:
我得到一个小帮手功能的那天的名字。
如何使用访问器操作list方法的参数?
感谢您的帮助!
课程模式
<?php
class Course extends \Eloquent {
protected $guarded = ['id', 'created_at', 'updated_at'];
//Relationship Holidays
public function holidays()
{
return $this->hasMany('Holiday');
}
//Relationship Teacher
public function teacher()
{
return $this->belongsTo('Teacher');
}
//Relationship User
public function bookings()
{
return $this->hasMany('Booking');
}
//Relationship Dates
public function dates()
{
return $this->hasMany('Dates');
}
//Accessor for Dates
public function getWeekdayAttribute()
{
//???
}
//Validation Rules
public static $rules = [
'name' => 'required',
'teacher_id' => 'required',
'description' => 'required',
'room' => 'required',
'price' => array('required', 'regex:/^\d*(\,\d{2})?$/'),
'maxuser' => 'required|numeric',
'target' => 'required'
];
//Custom Attribute Names
public static $names = [
'name' => 'Kursname',
'teacher_id' => 'Kursleiter',
'description' => 'Beschreibung',
'room' => 'Raum/Ort',
'price' => 'Preis',
'maxuser' => 'Max. Anzahl Teilnehmer',
'target' => 'Zielgruppe'
];
//Change Price Format Get
public function getPriceAttribute($price)
{
return number_format($price, 2, ',', '');
}
//Change Price Format Set
public function setPriceAttribute($price)
{
$this->attributes['price'] = str_replace(',', '.', $price);
}
//Unserialize Target Get
public function getTargetAttribute($target)
{
return unserialize($target);
}
//Serialize Target Set
public function setTargetAttribute($target)
{
$this->attributes['target'] = serialize($target);
}
}
日期模型
<?php
class Dates extends \Eloquent {
protected $guarded = ['id', 'created_at', 'updated_at'];
protected $table = 'course_dates';
public function courses()
{
return $this->belongsTo('Course')->orderBy('name');
}
//Validation Rules
public static $rules = [
'weekday' => 'required',
'start' => 'required|date_format:H:i',
'stop' => 'required|date_format:H:i'
];
//Custom Attribute Names
public static $names = [
'weekday' => 'Wochentag',
'start' => 'Von',
'stop' => 'Bis'
];
}
辅助功能
//Display Weekday
function showWeekday($id)
{
$weekday = array(
'1' => 'Montag',
'2' => 'Dienstag',
'3' => 'Mittwoch',
'4' => 'Donnerstag',
'5' => 'Freitag',
'6' => 'Samstag',
'0' => 'Sonntag'
);
return $weekday[$id];
}
答案 0 :(得分:5)
如果我理解你这样的事情会这样做:
CourseDate模型
public function getNameAndTimeAttribute(){
return $this->course->name . ' ' . $this->attributes['start'] . ' - ' . $this->attributes['stop'];
}
然后:
$dropdown = CourseDate::with('course')->get()->lists('nameAndTime', 'id');