cookie::make 不保存 cookie Laravel 8

cookie::make does not save the cookie in Laravel 8

我错过了什么吗?我正在努力解决cookie的这种简单使用。我的意图只是为每个用户保存一个变量(我尝试了会话并且存在副作用问题)。下面的代码理论上应该保存下次调用页面时应该存在的 cookie,对吗?这没用。我错过了什么?

class TestController extends Controller
  {
  public function show($page) {
    echo @Cookie::get('testcookie');
    if (Cookie::get('testcookie')) { echo 'cookie exists<br>'; } 
    else { echo 'cookie does not exist<br>'; }
    $cookie = Cookie::make('testcookie','5', 120);
    echo $cookie;
    return view('tests.'.$page,['page' => $page]);
  } 
}

我还按照建议修改了 config/session.php,以便在 http://localhost 上使用。我应该 clean/cache... 还是类似的。我在 OSX.

上使用 laravel 8 & FF
'secure' => env('SESSION_SECURE_COOKIE', false)

有人可以告诉我我做错了什么吗?

如果我尝试另一种响应方式...

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Response;

public function show($page, Request $request)
{
    echo $request->cookie('name');

    if ($request->cookie('name')) { echo 'cookie exists<br>'; } else { echo 'cookie does not exist<br>'; }

    $response = new Response('Set Cookie');

    $cookie = $response->withCookie(cookie('testcookie','5', 120));

    echo $cookie;

    return view('tests.'.$page,[
        'page' => $page
    ]);
} 

我收到错误消息“调用未定义的方法 Illuminate\Support\Facades\Response::withCookie()”。

为什么php这么复杂又这么简单?

您必须发送带有响应的制作 cookie。

Cookie::make() 只是在您的支持下创建 cookie 对象 - 但是,如果您不将它们发送给用户 - 他将无法保存它们。

class TestController extends Controller
{
    public function show($page) {
        //for debug
        if ($cookie = Cookie::get('testcookie')) { dump ($cookie); }
        $cookie = Cookie::make('testcookie','5', 120);
        return response()
            ->view('tests.'.$page,['page' => $page])
            ->withCookie($cookie);
    }
}