生成静态页控制器
命令php artisan make:controller Dir/controllername
DIR文件夹/控制器方法
命名空间
使用依赖注入
时,理清命名空间的关系。很多时找不到class,是没有引入对应的命名空间(ORM)
渲染视图
以下为定义一个简单控制器以及渲染
public function home(){
return view('static_pages/home')
}
上面的代码,将会在 resoureces/views
文件夹下的static_pages/home.blade.php文件。默认情况下,所有视图存在放在resources/views
下
控制器响起视图
1.数组
形式
$name=xiaoming;$age=19;
//数组形式
return view('视图',['username'=>'xiaoming','age'=>'19']);
//赋值变量
$data=['username'=>'xiaoming','age'=>'19'];
return view('视图',$data);
2.with
函数
return view('视图')->with('username','xiaoming')->with('age',19);
3.with+变量名
return view('视图')->withUsername('xiaoming')->withAge(19);
控制器路由
注意顺序
- 基础控制器路由(路由隐式绑定参数,将参数传递到控制器的形参上)
- 隐式控制器路由(需要引入Route命名空间)
- 隐式路由模型绑定
一个简单关联
1.2隐性路由模型绑定
//1.路由声明必须使用Eloquent模型的单数小写格式为作为路由片段参数,User对应 {user}
Route::get('/users/{user}','UsersController@show')->name('users.show');
//2.控制器方法必须包含对应的Eloquent模型类声明,并且是有序的
use App\Models\User
public function show(User $user){
return view('users.show',compact('users'));
}
当请求 xxxx/users/1
并且满足以上两个条件时,Lara将会自动查找ID
为1的用户,并赋值到变量$user
中,如果数据库找不到对应的模型实例,会自动生成HTTP 404(not found)
;