【发布时间】:2014-01-21 09:48:57
【问题描述】:
我正在尝试通过变量实例化一个类(Laravel3 Eloquent 模型),但我收到一个错误消息,指出找不到该类。
但是,当我对类名进行硬编码时,它工作得很好。
(仅供参考,在下面的代码中,$contact_type 应为电话、传真或电子邮件。)
这是我目前正在玩的:
foreach( $input AS $contact_type => $contact_info )
{
foreach( $contact_info AS $data )
{
$obj = new $contact_type( (array)$data);
echo'<pre>Obj: ',print_r($obj),'</pre>'; // <----- For Testing
}
}
当我运行上述代码时,它会抛出 "Class 'Phone' not found" 错误。
当我用new Phone()(或传真或电子邮件)替换new $contact_type() 时,它工作得很好。
我敢打赌,我只是在看一些简单的东西 :) 我错过了什么?
请帮忙!
【问题讨论】:
-
你在命名空间中吗?
-
@deceze - 打败我。我打赌就是这样。想不出别的了。
-
这里的命名空间如何关联?如果命名空间相关,
$obj = new Phone()也不应该工作 -
@RoyalBg 实际上,当您在 USE 语句中为命名空间或类起别名时,手动编写时它可以工作,但不能作为变量工作。
-
@Jessica - 不仅仅是
useing。使用字符串时也不会解析当前命名空间中的类。
标签: php laravel instantiation eloquent laravel-3