2017-09-02 15 views
0

ビューからコントローラにパラメータを送信したいとします。 ビューブレードとコントローラでこれを行う方法は?パラメータでビュー内のlaravel変数

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

すべてが機能します。しかし、私はそれがよりよく見えるようにしたいと思います。例:

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

これは私の最初のlaravelです。

+0

ブレードビューからコントローラにビューを送信したいですか? – Sletheren

答えて

0

I'ldは、あなたのようにルートを経由してコントローラにデータを送信しようと提案します他の答えで述べた。しかし、まだルートが必要ない場合は、この方法を試してみてください。

コントローラをfunctionに静的に設定します。例えば:あなたのviewコール

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

これは、コントローラにビューから

を任意のデータを送信するために良いアイデアのように見えるdoesntのしかし、あなたが本当にそれを必要とする場合は、表示して、ブレード・ファイルでそれと対話するコントローラオブジェクトを渡すことができます。

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

ブレード・ファイル:ブレード・テンプレートで

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

あなたはもっと何かを書くことができますか?これはできない。 : –

0

あなたのようなルートを呼び出すことができます。

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

そして、あなたはこのルートを宣言するあなたのルートファイルに:あなたのコントローラで

Route::get('something/{id}','[email protected]'); 

あなたがそれを取得することができます。

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

私はこれを知っていますが、私はルートなしでこれを使いたいと思っています。 –

+0

これは最も便利で安全で推奨される方法です。ルートを使用する際の問題は何ですか? – Sletheren

+0

メインページを選択したいので私が上記のようにデータベースからのニュース。 –

0

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

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

だから、これはあなたが別のルートで行うことができますものです。

ですから、このようなあなたのルートを登録することができます。

Route::get('/news/{id}', '[email protected]');

そして、あなたのコントローラが方法だろう。

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

をとIDを渡すためにあなたのビューで、あなたが何かを持っているでしょうlike:

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

希望に役立ちます!

関連する問題