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

问题描述 投票:0回答:3

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

  1. 类。(id,cls,divn)

id cls divn
1 1 A
2 1 B
4 2 A
5 2 B

6 2℃

7 3 A

2.teacher(id 教师姓名,tclsid,tsub)

现在我想,我输入教师姓名并使用 html 标签在选择框中选择班级、部门、主题。 如果我选择班级和部门,请检查班级表。并从所选班级和部门获取ID以插入到教师表tclsid字段中。

这怎么可能??

我正在尝试选择多个班级和部门

我正在使用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 教师姓名 tclsid tsub

1 xyz 1,5 数学

2 poq 5,7 英语

如果xyz老师选择班级和部门是1,2和A,B(所以id是1,5)

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

但是我遇到了一个错误 错误异常(E_UNKNOWN)

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

laravel-4
3个回答
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();

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();
}

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


0
投票

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

$cs = ForumClass::where('cls','=', $clss)->where('divn','=', $divn )->first();
$teachers->tcls= $cs->id;  
© www.soinside.com 2019 - 2024. All rights reserved.