参数中的laravel变量

时间:2017-09-02 12:05:30

标签: php laravel

我想从视图向控制器发送参数。 如何在视图刀片和控制器中执行此操作?

DB::table('news')->where('id', '=', 1)->get()

所以一切正常。但我希望它看起来更好。 e.g

{{ $news->id='1' }}

这是我开始使用laravel。

4 个答案:

答案 0 :(得分:0)

从视图TO控制器

发送任何数据看起来不是一个好主意

但是如果你真的需要它,你可以传递控制器对象来查看它并在刀片文件中与它交互:

class CatalogController extends Controller 
{
    public function showNews()
    {
        return view('catalog.sections', [
            'controller' => $this,
        ]);
    }
}

你的刀片文件:

<div>
    @php($controller->doSomething())
</div>

答案 1 :(得分:0)

在您的Blade模板中,您可以调用以下路线:

<a href="{{route('something',$news->id)}}"

在您的路线文件中,您声明了此路线:

Route::get('something/{id}','yourController@yourMethod');

在您的控制器中,您可以检索它:

public function yourMethod($id){
  //here u can use $id
}

答案 2 :(得分:0)

我建议您尝试通过其他答案中提到的路径向控制器发送数据。但如果您仍然不想要路线,请尝试这种方法。

将您的控制器function设为静态。例如:

public static function newsFunc($id){ //** static

    $data = DB::table('news')->where('id','=', $id)->get();
    .
    .
    .
    .
    .
}

view来电

{{ \App\Http\Controllers\YourControllerName::newsFunc($news->id) }}

答案 3 :(得分:0)

所以这是你可以用另一条路线做的事情。

所以你可以这样注册你的路线:

Route::get('/news/{id}', 'YourController@getNews');

然后你的控制器会有一个方法:

public function getNews($id) {
    $news = DB::table('news')->where('id', '=', 1)->first();
    return view('your-view', compact('news'));
}

并且在您认为传递ID时,您会有类似的内容:

<a href="/news/1">Go to first</a>

希望有所帮助!