如何从一个表中获取id并在laravel 4中添加另一个表

时间:2015-03-06 05:28:52

标签: laravel-4

我尝试将id从一个表添加到另一个表以提供与表的关系。 我有2张桌子..

  1. 类。(ID,CLS,DIVN)
  2. id cls divn
    1 1 A
    2 1 B
    4 2 A
    5 2 B

    6 2 C

    7 3 A

    2.teacher(id teachername,tclsid,tsub)

    现在我想要,我进入Teachername并使用html标签在选择框上选择class,division,subject。 如果我选择类和分区检查类table.and从选定的类&获取id分区插入教师表tclsid feld。

    怎么可能??

    我试图选择多个班级和分区

    我正在使用controller.php就在这里

    $clss =implode(',', Input::get('tcls')); $divn =implode(',', Input::get('tdivn')); $teachers =new ForumTeacher(); $teachers ->tname=Input::get('tname'); $teachers->tmobile=Input::get('tmobile'); $teachers ->ttype=Input::get('ttype'); $teachers ->tsubject = implode(',', Input::get('tsubject')); $cs = ForumClass::where('cls', $clss)->where('divn', $divn )->first(); $teachers->tcls= $cs->id;

    但不能使用此代码$ teachers-> tcls = $ cs-> id;`...

    我想要像这样的老师桌

    id teachername tclsid tsub

    1 xyz 1,5 maths

    2 poq 5,7 english

    如果xyz老师选择班级和分区是1,2& A,B(所以id为1,5)

    如果poq老师选择班级和分区是2,3& B,A(所以id是5,7)

    但是我收到了一个错误 ErrorException(E_UNKNOWN)

    尝试获取非对象的属性 错误代码行是  $ teachers-> tcls = $ cs-> id;

3 个答案:

答案 0 :(得分:0)

您的$teachers var持有一个未保存的新的ForumTeacher模型。您尚未在tcls中分配$teachers值。因此未设置$teachers['tcls'],添加:

$teachers->tcls = $cs->id;

我不明白你的目标是什么:

$clsid[$cs->id] = $teachers['tcls'];

如果您首先设置tcls $teachers属性,那么您所做的与以下内容相同:

$clsid[$cs->id] = $cs->id;

完成设置属性后,不要忘记保存模型:

$teachers->save();

答案 1 :(得分:0)

从一个表中获取id并在laravel 4中添加另一个表

$ cs = ForumClass :: where('cls','=',$ clss) - > where('divn','=',$ divn) - > first();                 $ teachers-> tcls = $ cs-> id;

答案 2 :(得分:0)

重新阅读您的问题和代码,根据我的理解,您将获得多个班级,部门组合和多个教师的主题。你要么必须有一个老师,一个cls和一个divn,一个主题或相同数量的这些对应于不同的老师。否则,我对你的模型感到困惑,所以我假设每个教师实例都有一个。

然后,您需要迭代输入并一次创建一个教师或创建一个数组并批量创建它们。为了简单起见,我将进行迭代:

// assuming all input arrays have the same count() of elements and
// are all in the same order
$tclss = Input::get('tcls');
$tdivns = Input::get('tdivn');
$tnames = Input::get('tname');
$tmobiles = Input::get('tmobile');
$ttypes = Input::get('ttype');
$tsubjects = Input::get('tsubject');

$iMax = count($tclss);
for ($i = 0; $i < $iMax; $i++)
{
    $tcls = ForumClass::where('cls', $tclss[$i])->where('divn', $tdivns[$i])->get();
    if (is_null($tcls))
    {
        // cls, divn combination is missing from your table
        // if you want to add it then do so or handle the error
        $tcls = new ForumClass();
        $tcls->cls = $tclss[$i];
        $tcls->divn = $divns[$i];
        $tcls->Save();
    }

    $teacher = new ForumTeacher();
    $teacher->tname = $tnames[$i]; 
    $teacher->tmobile = $tmobiles[$i]; 
    $teacher->ttype = $ttypes[$i]; 
    $teacher->tsubject = $tsubjects[$i]; 
    $teacher->tcls = $tcls->id;

    $teacher->save();
}

我没有对此进行测试,但你知道该怎么做。