模型代码如下所列
?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class monthlyActivity extends Model
{
protected $table = 'monthly_activities';
}
和控制器是 命名空间App \ Http \ Controllers;
use Illuminate\Http\Request;
class monthlyActivity extends Controller
{
//
public function show()
{
$monthly = monthlyActivity::all();
return view('show',['monthly' => $monthly]);
}
}
show.blade文件位于
之下<tbody>
<?php
foreach($monthly as $mon)
{
?>
<tr>
<td>
<?php echo $mon->id ?>
</td>
<td>
<?php echo $mon->year ?>
</td><td>
<?php echo $mon->id ?>
</td>
<td>
<?php echo $mon->id ?>
</td><td>
<?php echo $mon->id ?>
</td><td>
<?php echo $mon->id ?>
</td><td>
<?php echo $mon->id ?>
</td>
</tr>
<?php
}
?>
以下路线文件中的是此特定页面的提及路线
路由:: get(&#39; show&#39;,&#39; monthlyActivity @ show&#39;);
我收到控制器中声明的全部中的错误,我不知道如何解决此错误
答案 0 :(得分:1)
模型名称在Laravel中的camelCase中,但第一个字母大写除外,因此您的模型名称应为:MonthlyActivity,因此在您的模型更改行中:
class monthlyActivity extends Model
到
class MonthlyActivity extends Model
然后还将模型的文件名更改为MonthlyActivity.php
现在关于控制器,它不是一个严格的规则,但建议你在名称中添加一个控制器后缀。它可以帮助您避免这些名称冲突,它们的名称也应该从大写字母开始,所以我建议您将控制器名称更改为:
class MonthlyActivityController extends Controller
将控制器文件名更改为:MonthlyActivityController.php
现在您将在控制器中使用:
$monthly = MonthlyActivity::all();
确保在控制器顶部包含模型:
use App\MonthlyActivity;
将您的路线更改为:Route::get('show', 'MonthlyActivityController@show');
然后运行:
composer dump-autoload
现在试试你的程序,它应该按预期工作。
答案 1 :(得分:0)
您对控制器和型号使用相同的名称。所以错误就在这里:
$monthly = monthlyActivity::all();
由于名称冲突而尝试在all()
类中查找controller
函数的行。因此,更改模型的名称或使用模型的全名空间来区分它。