Laravel 函数显示在控制器中
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/50550426/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
laravel function show in controller
提问by louisse
I'm trying to show lessons from the course when i clicked on.
当我点击时,我试图展示课程中的课程。
model lesson
示范课
public function course(){
return $this->belongsTo(Course::class);
}
model course
示范课程
public function lesson() {
return $this->hasMany(Lesson::class);
}
}
show controller
显示控制器
public function show($id)
{
$cours = Course::findOrFailnd($id);
$lessons = course::findOrFail($id)->lesson;
return view('pages.lessons', compact('lessons', 'cours'));
}
page lesson
页课
<div class="form-group">
<strong>Lessons : </strong>
@foreach ($lessons as $lesson )
{{$lesson->long_text}}
@endforeach
</div>
web routes
网络路由
Route::resource('pages/lessons', 'LessonsController@show')->name('pages.lessons');
and i have this error:
我有这个错误:
Type error: Too few arguments to function Illuminate\Routing\PendingResourceRegistration::name(), 1 passed in C:\wamp64\www\learn2code\routes\web.php on line 21 and exactly 2 expected
回答by Quezler
For resource controllers its names
instead of name
:
Naming Resource Routes
By default, all resource controller actions have a route name; however, you can override these names by passing a names array with your options:
命名资源路由
默认情况下,所有资源控制器操作都有一个路由名称;但是,您可以通过传递带有选项的名称数组来覆盖这些名称:
Route::resource('photos', 'PhotoController')->names([
'create' => 'photos.build'
]
回答by Levente Otta
Model Course
示范课程
public function lessons() {
return $this->hasMany(Lesson::class);
}
Route
路线
Route::get('pages/lessons/{course}', 'LessonsController@show')->name('pages.courses.lessons');
OR
或者
Route::get('pages/courses/{course}/lessons', 'LessonsController@show')->name('pages.courses.lessons');
Controller show method
控制器显示方法
public function show(Course $course) {
return view('pages.lessons', compact('course'));
}
page lesson
页课
<div class="form-group">
<strong>Lessons : </strong>
@foreach ($course->lessons as $lesson)
{{$lesson->long_text}}
@endforeach
</div>