Controller.php第82行中的BadMethodCallException:Method[all]在laravel中不存在
型号代码如下所示Controller.php第82行中的BadMethodCallException:Method[all]在laravel中不存在,php,laravel-5,Php,Laravel 5,型号代码如下所示 ?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 Co
?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('show','monthlyActivity@show');
我在控制器中声明了all中的错误,我不知道如何解决此错误您对控制器和模型使用了相同的名称。所以错误在这里:
$monthly = monthlyActivity::all();
由于名称冲突,line尝试在
控制器
类中查找all()
函数。因此,请更改模型的名称或使用模型的全名空间来区分它。控制器和模型使用相同的名称。所以错误在这里:
$monthly = monthlyActivity::all();
由于名称冲突,line尝试在
控制器
类中查找all()
函数。因此,请更改模型的名称或使用模型的全名空格来区分它。模型名称在Laravel中以camelCase表示,第一个字母大写除外,因此您的模型名称应为:MonthlyActivity,因此在您的模型更改行中:
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
现在,请尝试您的程序,它应该可以正常工作。型号名称在Laravel中以camelCase表示,但首字母大写除外,因此您的型号名称应为:MonthlyActivity,因此在您的型号更改行中:
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
现在试试你的程序,它应该可以正常工作。它无法区分控制器和型号,因为它们的名称相同。使用完全命名的模型,更改其名称,或在控制器顶部添加模型的use语句,给模型一个别名。由于控制器和模型具有相同的名称,因此无法区分控制器和模型。或者使用完全命名的模型,更改其名称,或者在控制器顶部添加模型的use语句,给模型一个别名我已更改控制器的名称,然后其错误发生FatalErrorException在monthlyActivityController.php第13行:类“App\Http\Controllers\monthlyActivity”未找到检查错误:类“App\Http\Controllers\monthlyActivity”它是self解释你能告诉我如何定义模型名,使其与控制器不冲突需要你的帮助无法理解如何使用名称空间我有检查示例代码,他们也可以像我一样使用,但他们没有收到任何错误我更改了控制器名,然后其错误发生FatalErrorException inmonthlyActivityController.php第13行:未找到类“App\Http\Controllers\monthlyActivity”检查错误:类“App\Http\Controllers\monthlyActivity”是自解释的。您可以告诉我如何定义模型名称,使其不会与控制器冲突吗?需要您的帮助无法理解如何使用名称空间我有检查吗他们也可以像我一样使用示例代码,但他们没有得到任何错误