3. 将变量传递给视图

1. 生成Controller

// 生成的UsersController是带7个默认函数,匹配resource路由
php artisan make:controller UsersController

// 只生成UsersController类,不带任何默认函数
php artisan make:controller UsersController --plain

传递变量给视图方法一

// 传递单个变量
class UsersController extends Controller
{
    public function index()
    {
        $name = "zhoujiping";

        return view('welcome')->with('name', $name);
    }
}

//传递多个变量
class UsersController extends Controller
{
    public function index()
    {
        $firstName = "kuker";
        $lastName = 'Chou';

        return view('welcome')->with([
            'firstName' => $firstName,
            'lastName' => $lastName
        ]);
    }
}

将多个变量打包成数组传递

// 视图层直接使用$firstName和$lastName,使用$data无效

class UsersController extends Controller
{
    public function index()
    {
        $data['firstName'] = "kuker";
        $data['lastName'] = 'Chou';

        return view('welcome', $data);
    }
}

// 传递成数组
//  下面这种视图层使用$data['firstName']有效,直接使用$firstName不行
class UsersController extends Controller
{
    public function index()
    {
        $data['firstName'] = "kuker";
        $data['lastName'] = 'Chou';

        return view('welcome')->with('data', $data);
    }
}

最佳使用方案,使用compact

    // 这种方式好记忆,compact中传什么,视图就用什么作为变量
    public function index()
    {

        $data['firstName'] = "kuker";
        $data['lastName'] = 'Chou';

        $sex = '男';

        return view('welcome', compact('data', 'sex'));
    }

你可能感兴趣的:(3. 将变量传递给视图)