我想从视图向控制器发送参数。 如何在视图刀片和控制器中执行此操作?
DB::table('news')->where('id', '=', 1)->get()
所以一切正常。但我希望它看起来更好。 e.g
{{ $news->id='1' }}
这是我开始使用laravel。
答案 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>
希望有所帮助!