【问题标题】:how do i pass value from different link to one view laravel?我如何将不同链接的值传递给一个视图 laravel?
【发布时间】:2020-06-25 08:25:23
【问题描述】:

所以我有这个view1.php,我想将不同链接中的不同值传递给view2.php。 我设法传递并获取了值,但是我放在 layout.php 中的 css 对 view2.php 不起作用。 我不知道我在哪里做错了。 除了这个,还有其他方法可以传递不同的值吗?

view1.php

@extends('layouts.layout')
@section('content')
<div>
    <a href="/pass/6000"> OP 6000 </a>
    <a href="/pass/10000"> OP 10000 </a>
    <a href="/pass/20000"> OP 20000 </a>
</div>
@endsection

web.php

Route::get('/pass/{id}','User\MyController@postID');

MyController.php

public function postID($id) {
    return view('user.view2', [
      'id' => $id
    ]);
}

view2.php

@extends('layouts.layout')
@section('content')
  <div>
    {{$id}}
  </div>
@endsection

layout.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="csrf-token" content="{{ csrf_token() }}">

  <title>{{ config('app.name', 'Laravel') }}</title>
  <link rel="stylesheet" type="text/css" href="css/materialize.css"  media="screen,projection"/>
  <link rel="stylesheet" href="css/bootstrap/bootstrap.css">
  <link rel="stylesheet" href="css/user.css">

  <script type="text/javascript" src="js/main.js"></script>
</head>
<body>
  <nav> </nav>

  <main class="">
    @yield('content')
  </main>

  <footer> </footer>
  @yield('alert')
</body>
<script type="text/javascript" src="js/materialize.min.js"></script>
</html>

【问题讨论】:

  • href="css 更改为 href="/css 或使用 Laravel 的资产助手。还有src="/js 而不是src="js
  • “将值传递给视图”和“CSS 不呈现”有什么关系?你的问题是什么?
  • 这是你的答案吗? stackoverflow.com/a/51837048/12232340

标签: php laravel laravel-5.8


【解决方案1】:

仅仅因为您的 view2 的 URL 是 http://something.com/pass/some_id 并且您通过 css/some_css.css 链接样式表,所以它正在当前目录中搜索,即 pass,因此样式表的 URL 变得像 @987654324 @。这是个问题。

如果您将使用/css/some_cs.css,它将尝试从主目录(即/ 目录)中查找文件,因此URL 将变为http://something.com/css/some_css.css,一切都会正常运行。

否则,你应该使用 Laravel 提供的 helper {{asset('css/some_css.css')}} 它将生成 URL,文件所在的位置不会失败。

【讨论】:

  • CSS 和 JS 相同。从/开始
【解决方案2】:

出现此问题是因为当您重定向另一个视图时,您的 CSS 无法正确加载。

我给你的建议是使用assets 方法。

<link rel="stylesheet" type="text/css" href="{{ asset('css/materialize.css') }}"  media="screen,projection"/>
<link rel="stylesheet" href="{{ asset('css/bootstrap/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('css/user.css') }}">

【讨论】:

    【解决方案3】:

    似乎 css 没有加载到 view2.php 中。您需要使用 baseurl 来加载 css。

    例如:&lt;link rel="stylesheet" href="{{URL::asset('css/user.css')}}"&gt;

    【讨论】:

      猜你喜欢
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多